Custom Fonts Manager
Upload your own web fonts to use throughout your WordPress site. Whether you have a licensed premium font, a self-hosted Google Font alternative, or a custom brand typeface, this module makes it easy to use custom typography without external dependencies.
Use Cases
- Use your brand’s custom typeface throughout your website
- Self-host Google Fonts for GDPR compliance and improved performance
- Apply premium fonts from services like Adobe Fonts or purchased font licenses
- Set different fonts for body text and headings for typographic contrast
How It Works
- Upload your font files (WOFF2, WOFF, or TTF) to your WordPress media library
- Enter the font name and paste the file URLs in settings
- Toggle whether to auto-apply to body text and/or headings
- The module generates
@font-faceCSS and applies it site-wide
Supported Font Formats
| Format | Extension | Recommendation |
|---|---|---|
| WOFF2 | .woff2 | Best choice - smallest file size, best compression |
| WOFF | .woff | Good fallback for older browsers |
| TTF | .ttf | Legacy support for maximum compatibility |
For best performance, always upload WOFF2. It provides the smallest file size and is supported by all modern browsers. Add WOFF and TTF only if you need to support very old browsers.
Settings
Body Font
Apply a custom font to paragraphs, lists, and general body text.
| Setting | Type | Description |
|---|---|---|
| Font Name | Text | The name to reference the font (e.g., “Inter”) |
| WOFF2 URL | URL | Link to the .woff2 file |
| WOFF URL | URL | Link to the .woff file (fallback) |
| TTF URL | URL | Link to the .ttf file (legacy) |
| Apply to Body | Toggle | Auto-apply to all body text |
Heading Font
Apply a different custom font to h1-h6 headings and titles.
| Setting | Type | Description |
|---|---|---|
| Font Name | Text | The name to reference the font (e.g., “Poppins”) |
| WOFF2 URL | URL | Link to the .woff2 file |
| WOFF URL | URL | Link to the .woff file (fallback) |
| TTF URL | URL | Link to the .ttf file (legacy) |
| Apply to Headings | Toggle | Auto-apply to all headings |
Uploading Font Files
Step 1: Enable Font Uploads
The module automatically enables font file uploads to your WordPress media library. Supported types: .woff2, .woff, .ttf, .otf, .eot
Step 2: Upload Your Font
- Go to Media → Add New
- Upload your font file
- Click on the uploaded font
- Copy the “File URL” from the attachment details
Step 3: Add to Settings
Paste the copied URL into the appropriate font format field in the module settings.
Applying Fonts
Automatic Application
Toggle on “Apply to Body Text” or “Apply to Headings” to automatically use your fonts:
Body font applies to:
body,p,div,spanli,td,thinput,textarea,select,button
Heading font applies to:
h1,h2,h3,h4,h5,h6.site-title,.entry-title
Manual CSS Usage
If you prefer manual control, leave the auto-apply toggles off and use the font name in your custom CSS:
.my-special-element {
font-family: 'YourFontName', sans-serif;
}
.hero-headline {
font-family: 'YourHeadingFont', serif;
}Page Builder Integration
Most page builders (Elementor, Divi, Beaver Builder) let you enter custom font names:
- Open typography settings for an element
- Choose “Custom” or type the font name
- Enter your font name exactly as configured
Generated CSS Preview
The settings page shows a preview of the CSS that will be generated. This helps you:
- Verify font names are correct
- See the
@font-facedeclarations - Copy CSS for use elsewhere
Example generated CSS:
@font-face {
font-family: 'Inter';
src: url('https://example.com/fonts/inter.woff2') format('woff2'),
url('https://example.com/fonts/inter.woff') format('woff');
font-weight: normal;
font-style: normal;
font-display: swap;
}
body, p, div, span, li, td, th, input, textarea, select, button {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif !important;
}Performance Considerations
Font Display
The module uses font-display: swap, which means:
- Text displays immediately with a fallback font
- Custom font swaps in when loaded
- No invisible text while fonts load
Fallback Stack
Fonts include a system font fallback stack:
font-family: 'YourFont', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;This ensures readable text even if the custom font fails to load.
Self-Hosting Google Fonts
To self-host Google Fonts for GDPR compliance or performance:
- Visit Google Webfonts Helper
- Select your font and character sets
- Download the font files
- Upload to your WordPress media library
- Configure in Custom Fonts Manager
This eliminates external requests to Google’s servers.
Font Weight Variations
The module supports normal weight fonts. For multiple weights (bold, light, etc.), you’ll need to:
- Create separate
@font-facerules for each weight - Use the Header & Footer Code module to add additional CSS
- Or use your theme’s custom CSS section
Example for adding bold weight:
@font-face {
font-family: 'Inter';
src: url('/path/to/inter-bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}FAQ
Why isn’t my font showing up?
Check these common issues:
- Verify the font URLs are correct and accessible
- Ensure the font name matches exactly (case-sensitive)
- Clear your browser cache
- Check for CSS conflicts overriding the font
Can I use multiple font weights?
The module handles normal weight. For multiple weights (regular, bold, light), add additional@font-face rules via the Header & Footer Code module or your theme’s custom CSS.Do I need all three formats?
No, WOFF2 alone covers all modern browsers. Add WOFF and TTF only if you need to support Internet Explorer or very old browsers.Will this work with my page builder?
Yes! Once configured, the font name becomes available to use in any page builder’s typography settings. Just type the exact font name you configured.How do I know what font name to use?
Use the exact name you entered in the “Font Name” field. This becomes thefont-family name in CSS. Keep it simple—like “Inter” or “Poppins”—without version numbers.Get access to all 147 modules with a single license