В этой статье подробно разберём, как программно и с помощью плагинов изменять заголовки страниц в WordPress. Динамическое изменение заголовков особенно важно для SEO, удобства пользователей и персонализации контента. Вы узнаете, как подставлять уникальные заголовки для разных типов страниц, категорий, записей и даже создавать сложные логики с помощью хуков.
Зачем нужно менять заголовки страниц динамически
Заголовок страницы (title tag) — один из главных факторов SEO и первый элемент, который видит пользователь в поисковой выдаче. Если у вас стандартные заголовки, типа «Главная» или «Запись без названия», это снижает кликабельность и рейтинг в поисковиках.
Динамическое изменение заголовков позволяет:
- Улучшить SEO, создавая уникальные и релевантные title для каждой страницы;
- Персонализировать заголовки под разные категории, теги и пользовательские типы записей;
- Добавлять в заголовок актуальную информацию, например, номер страницы пагинации, дату или имя автора;
- Использовать в заголовках данные из метаполей и настроек сайта.
Теперь рассмотрим способы реализации.
Изменение заголовков через фильтр wp_title и wpseo_title
Фильтр wp_title для классической темы
В классических темах WordPress заголовок часто формируется через функцию wp_title(). Для изменения заголовка можно использовать фильтр wp_title. Пример функции, которую можно добавить в functions.php вашей темы:
function wptem_change_wp_title($title, $sep) {
if (is_home() || is_front_page()) {
$title = 'Главная страница сайта - ' . get_bloginfo('name');
} elseif (is_category()) {
$title = 'Категория: ' . single_cat_title('', false) . ' ' . $sep . ' ' . get_bloginfo('name');
} elseif (is_single()) {
$title = get_the_title() . ' ' . $sep . ' ' . get_bloginfo('name');
}
return $title;
}
add_filter('wp_title', 'wptem_change_wp_title', 10, 2);Этот код проверяет тип страницы и формирует уникальный заголовок, добавляя название сайта.
Фильтр wpseo_title для пользователей плагина Yoast SEO
Если вы используете Yoast SEO, заголовки генерируются плагином. Для их изменения применяется фильтр wpseo_title. Пример:
function wptem_change_yoast_title($title) {
if (is_category()) {
$title = 'Пользовательский заголовок категории: ' . single_cat_title('', false);
}
return $title;
}
add_filter('wpseo_title', 'wptem_change_yoast_title');Таким образом можно добавить свою логику в генерацию заголовков, не затрагивая остальные настройки Yoast SEO.
Автоматизация заголовков для пользовательских типов записей и таксономий
Часто сайты на WordPress используют пользовательские типы записей (Custom Post Types, CPT) и таксономии. В этом случае важно, чтобы заголовки для таких страниц были тоже осмысленными и уникальными.
Рассмотрим пример для CPT «product» и таксономии «product_category»:
function wptem_custom_post_type_title($title, $sep) {
if (is_singular('product')) {
$title = get_the_title() . ' – Купить сейчас | ' . get_bloginfo('name');
} elseif (is_tax('product_category')) {
$term = get_queried_object();
$title = 'Категория товаров: ' . $term->name . ' ' . $sep . ' ' . get_bloginfo('name');
}
return $title;
}
add_filter('wp_title', 'wptem_custom_post_type_title', 10, 2);Такой подход улучшит восприятие сайта как пользователями, так и поисковыми системами.
Плагины для управления заголовками и мета-тегами
Помимо Yoast SEO, на рынке есть другие полезные плагины, которые позволяют гибко управлять заголовками:
- All in One SEO Pack – альтернатива Yoast с удобным интерфейсом;
- Clearfy Pro – оптимизирует SEO и позволяет настраивать заголовки, отключать лишние метатеги;
- WPRemark – плагин для управления разметкой и метаданными страниц.
Например, в Clearfy Pro можно настроить шаблоны заголовков для разных типов страниц без кода. Подробнее об этом можно узнать на сайте WPCShop.
Создание собственного плагина для динамического изменения заголовков
Если нужно реализовать сложную логику, лучше создать собственный плагин. Пример минимального плагина:
<?php
/**
* Plugin Name: WPTem Dynamic Titles
* Description: Динамическое изменение заголовков страниц
* Version: 1.0
* Author: WPTem
*/
function wptem_dynamic_titles_plugin($title, $sep) {
if (is_front_page()) {
return 'Добро пожаловать на мой сайт ' . get_bloginfo('name');
}
if (is_single()) {
$custom_field = get_post_meta(get_the_ID(), 'wptem_custom_title', true);
if ($custom_field) {
return $custom_field . ' ' . $sep . ' ' . get_bloginfo('name');
}
}
return $title;
}
add_filter('wp_title', 'wptem_dynamic_titles_plugin', 10, 2);
?>Этот плагин добавляет возможность подставлять заголовок из кастомного поля wptem_custom_title для отдельных записей.
Советы по отладке и тестированию динамических заголовков
При работе с динамическими заголовками важно тщательно тестировать изменения:
- Проверяйте заголовки на разных типах страниц — главная, записи, категории, архивы, CPT;
- Используйте инструменты браузера и расширения для просмотра заголовков (например, SEO Meta in 1 Click);
- Следите, чтобы не было дублирования заголовков на разных страницах;
- Тестируйте совместимость с SEO-плагинами и темой.
Если используете кэширование, не забудьте очистить кэш после изменений.
Заключение
Динамическое изменение заголовков в WordPress — важный инструмент для улучшения SEO и пользовательского опыта. С помощью приведённых примеров кода и рекомендаций вы сможете гибко управлять заголовками на своём сайте. Для расширенных возможностей воспользуйтесь плагинами, такими как Clearfy Pro или Yoast SEO, а если нужно — пишите собственные решения.