How do I add new fonts to theme options backend?
To add custom fonts to the Theme Options typography options you can do the following:
Step 1: Upload your fonts with the format (.ttf, .otf, .woff, .eot, .woff2) to your child theme in the directory wp-content/themes/child-theme-name/fonts/
Step 2: Create a new file called fonts.css and upload it to wp-content/themes/child-theme-name/fonts. Add the following code to this file:
@font-face { font-family: 'MyWebFont'; font-style: normal; font-weight: 500; src: url('webfont.eot'); /* IE9 Compat Modes */ src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ url('webfont.woff2') format('woff2'), /* Super Modern Browsers */ url('webfont.woff') format('woff'), /* Pretty Modern Browsers */ url('webfont.ttf') format('truetype'); /* Safari, Android, iOS */ }
You need to change "MyWebFont" to the font name you want to add.
Step 3: Edit the file field_typography.php located in the directory wp-content/themes/theme-name/lib/framework/redux/inc/fields/typography/.
Add this code after the line 39:
'MyWebFont' => "My Web Font",
Step 4: Next find the first occurrence of:
if ( isset( $this->field['all_styles'] ) && ! empty( $this->field['all_styles'] ) ) {
Above this add:
$this->field['ext-font-css'] = get_stylesheet_directory_uri() . 'fonts/fonts.css';
Step 5: Finally, in your child theme functions.php file add:
if ( ! function_exists( 'ghostpool_enqueue_custom_fonts' ) ) { function ghostpool_enqueue_custom_fonts() { wp_enqueue_style( 'gp-redux-custom-fonts', get_stylesheet_directory_uri().'/fonts/fonts.css'); } } add_action( 'wp_enqueue_scripts', 'ghostpool_enqueue_custom_fonts' );