В 2013 году в CMS WordPress появилась новая тема — Twenty Thirteen, которая достаточно хороша: написана с использованием HTML5, корректно ведёт себя на разных размерах экрана и не страдает обилием ненужных финтифлюшек. Но не обошлось и без ложки дёгтя: в теме используются взятые с Google Fonts шрифты Bitter и Source Sans Pro — они весьма хороши, но в них нет кириллицы. Понятно, что можно, создав дочернюю тему, поправить используемые в ней стилевые правила, указав нужные шрифты, однако хочется сделать всё правильно: и загрузить нужный шрифт, и избежать загрузки ненужного.
Поиск не дал готового решения (что, вообще-то, странно) — пришлось изобретать самому, руководствуясь тем, что нашлось. Итак, для замены шрифтов надо:
- Создать дочернюю тему;
- В стилевом файле style.css дочерней темы указать нужные шрифты;
- Отключить загрузку ненужных и добавить загрузку нужных шрифтов, добавив в файл functions.php дочерней темы такой код:
if ( ! function_exists('child_fonts_url')) {
function child_fonts_url() {
$fonts_url = '';
$open_sans = _x( 'on', 'Open Sans font: on or off', 'child' );
$open_sans_condensed
= _x( 'on', 'Open Sans Condensed font: on or off', 'child' );
if ( 'off' !== $open_sans || 'off' !== $open_sans_condensed ) {
$font_families = array();
if ( 'off' !== $open_sans )
$font_families[] = 'Open Sans:400italic,400,700';
if ( 'off' !== $open_sans_condensed )
$font_families[] = 'Open Sans Condensed:300';
$query_args = array(
'family' => urlencode( implode( '|', $font_families ) ),
'subset' => urlencode( 'latin,cyrillic' ),
);
$fonts_url = add_query_arg(
$query_args,
'//fonts.googleapis.com/css'
);
}
return $fonts_url;
} // function child_fonts_url
}
function disable_twentythirteen_fonts() {
wp_deregister_style('twentythirteen-fonts');
}
add_action( 'wp_enqueue_scripts', 'disable_twentythirteen_fonts', 11 );
wp_enqueue_style( 'child-fonts', child_fonts_url() );
Здесь child — имя дочерней темы. Функция child_fonts_url
списана с twentythirteen_fonts_url
из темы Twenty Thirteen — изменены лишь используемые шрифты (имена шрифтов и переменных, список начертаний и наборов символов) да название функции.