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