WordPress. Заголовок страницы
22.03.2019
Теги: CMS • Hook • Web-разработка • WordPress
Выводим заголовок страницы
Функция wp_get_document_title() получает заголовок текущей страницы (документа), который принято выводить в теге title. Это замена для устаревшей функции wp_title(). Для главной страницы функция возвращает название сайта + тире + краткое описание. Название и описание функция получает из настроек сайта. Для страницы записи функция возвращает название поста + тире + название сайта.
<title><?= wp_get_document_title(); ?></title>
<title>Сайт на WordPress — Ещё один сайт на WordPress</title>
Фильтры для манипуляций с заголовком
В WordPress 4.4 добавилось несколько новых фильтров для манипуляции заголовком окна браузера, которые можно использовать внутри темы или плагина.
pre_get_document_title
Фильтр позволяет переопределить работу функции wp_get_document_title():
add_filter( 'pre_get_document_title', function() { return 'Какой-то заголовок страницы'; } );
<title><?= wp_get_document_title(); ?></title>
<title>Какой-то заголовок страницы</title>
document_title_separator
Фильтр для изменения разделителя между частями заголовка.
add_filter( 'document_title_separator', function() { return '|'; } );
<title><?= wp_get_document_title(); ?></title>
<title>Сайт на WordPress | Ещё один сайт на WordPress</title>
document_title_parts
Фильтр частей заголовка, из которых состоит title. Представлен в виде ассоциативного массива, элементы которого можно редактировать, удалять или добавлять.
Array
(
[title] => Сайт на WordPress
[tagline] => Ещё один сайт на WordPress
)
add_filter( 'document_title_parts', function($parts) { if (isset($parts['tagline'])) unset($parts['tagline']); return $parts; } );
<title><?= wp_get_document_title(); ?></title>
<title>Сайт на WordPress</title>
Добавляем поддержку title-tag
Если добавить теме поддержку title-tag, то в <head> части документа не нужно указывать тег <title>. Тег будет добавлен автоматически функцией _wp_render_title_tag(), которая привязана к событию wp_head. Это событие вызывается из функции wp_head(). Вызов самой функции wp_head() должен быть в файле header.php темы, внутри тега <head>.
<!doctype html> <html lang="ru"> <head> <meta charset="<?= bloginfo('charset'); ?>"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <?php wp_head(); ?> </head> <body>
При автоматическом добавлении тега <title> WordPress будет использовать функцию wp_get_document_title() для вывода заголовка, т.е. будет добавлен код:
<title><?= wp_get_document_title(); ?></title>
В этом можно убедиться, если заглянуть в исходный код функции _wp_render_title_tag():
function _wp_render_title_tag() { if ( ! current_theme_supports('title-tag') ) { return; } echo '<title>' . wp_get_document_title() . '</title>' . "\n"; }
current_theme_supports() проверяет, есть ли указанная возможность у темы, зарегистрированная через add_theme_support().
Дополнительно
Поиск: CMS • Hook • Web-разработка • WordPress • Заголовок • Title • wp_get_document_title • title-tag • add_theme_support • current_theme_supports • wp_head