Add a custom font
Anything you install under Appearance → Fonts appears in every font dropdown Rural Blog offers, and is served from your own domain.
This needs WordPress 7.0 or later. On 6.x the menu does not exist, and the nine built-in stacks are what you have.
Installing a font
Appearance → Fonts → Upload.
- Have your font files ready as
.woff2. If you have.ttfor.otf, convert them first — any online woff2 converter will do it, and woff2 is typically 30–50% smaller. - Upload one file per weight and style you actually need.
- Give each file its font weight (400, 700…) and style (normal, italic). Getting these right is what lets the browser pick the correct file instead of faking a bold.
The Font Library also offers a collection of Google Fonts to install. Choosing one there downloads it to your site — your visitors never contact Google. That is the recommended way to use a Google font with this theme.
Using it
Open any typography control and pick the family from the Face dropdown:
- Base font and Heading font — Design → Typography
- Menu — Design → Header
- Listing titles and meta — Design → Blog
- Post title, subtitle and body copy — Design → Single post
The theme writes the @font-face rules for whichever families you actually used,
with font-display: swap, and nothing for the ones you did not.
How many weights
Two or three. No more.
Each weight is a separate file and a separate download. A body font wants regular and its italic; a heading font wants one weight, maybe two. Five weights of a display face is a megabyte of typography on a text blog.
If a weight you did not install is asked for, the browser synthesises it — a faked, smeared bold. That is why the weight dropdowns are a short list rather than a free number box, and why they should name a weight your family actually has.
Licensing
Check the licence before uploading. Self-hosting a webfont means distributing the file from your server, which some commercial licences forbid and most price separately. Open licences — SIL OFL, Apache — are fine.
If the font does not appear
- The dropdown does not list it — the family did not save, or you are on WordPress 6.x.
- It is listed but the site does not change — check that the weight you asked for exists in the family, and hard-reload; the theme’s inline CSS is cached against the theme version.
- A family you uninstalled is silently ignored, and the role falls back to the theme’s default rather than breaking.