В WordPress заголовок страницы (title) — это важный элемент, который влияет не только на отображение в браузере, но и на SEO. Часто возникает задача изменить заголовок динамически, в зависимости от контекста или других условий, без использования стандартного редактора темы. В этой статье мы разберём, как это сделать программно, используя хуки WordPress и популярные плагины. Также приведём практические примеры кода.
Почему важно уметь программно изменять заголовок страницы в WordPress
Стандартно заголовок страницы в WordPress формируется с помощью функции wp_title() или встроенного тега <title> в файле темы. Однако в ряде случаев это неудобно:
- Нужно задать уникальный заголовок для страниц, созданных динамически или через кастомные запросы.
- Необходимо менять заголовок в зависимости от роли пользователя или параметров URL.
- Иногда темы или плагины не позволяют гибко управлять заголовками.
В таких случаях программное управление заголовком становится настоящим спасением.
Используем фильтр document_title_parts для изменения заголовка
Начиная с WordPress 4.4, для формирования заголовка используется фильтр document_title_parts. Этот фильтр позволяет модифицировать части заголовка, например, заменить заголовок страницы, название сайта или описание.
Рассмотрим пример функции, которая изменит заголовок на главной странице:
function wpskins_change_home_title($title_parts) {
if (is_front_page()) {
$title_parts['title'] = 'Добро пожаловать на мой сайт WPSkins!';
}
return $title_parts;
}
add_filter('document_title_parts', 'wpskins_change_home_title');Здесь мы проверяем, что пользователь на главной странице, и меняем ключ 'title' в массиве частей заголовка. Это простой и эффективный способ.
Изменение заголовка для конкретной категории
Если нужно изменить заголовок для страницы категории, можно проверить условие is_category() и получить объект категории:
function wpskins_change_category_title($title_parts) {
if (is_category()) {
$category = get_queried_object();
$title_parts['title'] = 'Категория: ' . $category->name . ' - лучшие записи';
}
return $title_parts;
}
add_filter('document_title_parts', 'wpskins_change_category_title');Так вы сможете сделать заголовок более информативным и уникальным.
Пример использования плагина Yoast SEO для управления заголовками
Если вы используете SEO-плагины, например Yoast SEO, они имеют собственные настройки заголовков, которые могут переопределять стандартные. В Yoast SEO можно задать шаблоны заголовков для разных типов страниц через админку.
Но иногда нужно программно изменить заголовок, несмотря на настройки плагина. Для этого можно использовать фильтр wpseo_title.
function wpskins_custom_wpseo_title($title) {
if (is_single() && in_category('novosti')) {
$title = 'Новость: ' . $title;
}
return $title;
}
add_filter('wpseo_title', 'wpskins_custom_wpseo_title');Данная функция добавит префикс «Новость:» ко всем записям категории «novosti».
Изменение заголовка через плагин Custom Title
Существует плагин Custom Title, который позволяет задавать заголовок для любой страницы через мета-бокс в редакторе. Но если нужно массово переопределить заголовки, лучше использовать программные методы.
Тем не менее, можно расширить функционал Custom Title с помощью кода, который будет изменять заголовки в зависимости от пользовательских полей. Например:
function wpskins_custom_title_from_meta($title_parts) {
if (is_singular()) {
$custom_title = get_post_meta(get_the_ID(), '_custom_title', true);
if ($custom_title) {
$title_parts['title'] = $custom_title;
}
}
return $title_parts;
}
add_filter('document_title_parts', 'wpskins_custom_title_from_meta');<Этот код берёт значение из мета-поля _custom_title и устанавливает его как заголовок страницы.
Как отключить автоматическое добавление названия сайта в заголовок
Иногда тема добавляет название сайта в конец заголовка автоматически. Чтобы убрать это, можно в функции, подключённой к фильтру document_title_parts, удалить ключ site:
function wpskins_remove_site_name_from_title($title_parts) {
if (isset($title_parts['site'])) {
unset($title_parts['site']);
}
return $title_parts;
}
add_filter('document_title_parts', 'wpskins_remove_site_name_from_title');Это полезно, если хотите полностью контролировать заголовок и избежать повторения.
Советы по SEO при изменении заголовков страниц
Заголовок страницы — один из важнейших факторов SEO. Чтобы улучшить позиции сайта, следуйте простым советам:
- Делайте заголовок уникальным для каждой страницы.
- Включайте ключевые слова в начале заголовка.
- Не превышайте длину в 60–70 символов, чтобы заголовок не обрезался в поисковой выдаче.
- Используйте динамические значения, если это релевантно, например названия категорий или постов.
Программное управление заголовками даёт гибкость для реализации этих рекомендаций.
Заключение: гибкий контроль заголовков в WordPress с помощью кода
Управление заголовком страницы в WordPress можно эффективно осуществлять с помощью фильтра document_title_parts и других хуков, а также интеграции с SEO-плагинами. Благодаря этому вы получите точный контроль над тем, что видят пользователи и поисковые системы.
Используйте приведённые примеры для решения своих задач и адаптируйте код под конкретные условия проекта. Это позволит сделать сайт более профессиональным и SEO-дружественным.