В этой статье разберем, как с помощью стандартных хуков WordPress динамически менять заголовки страниц в зависимости от условий. Это часто необходимо для улучшения SEO, повышения удобства пользователей и создания уникального контента без дополнительных плагинов.
Почему важно динамически изменять заголовки страниц в WordPress
Заголовок страницы — один из главных элементов, который индексируют поисковые системы и видят пользователи в результатах поиска. Статичные заголовки не всегда отражают текущий контент, особенно на архивах, категориях, страницах с фильтрами и т.д.
Динамические заголовки позволяют:
- Отражать текущее содержимое страницы (например, категорию, тег, дату);
- Улучшать SEO благодаря уникальным заголовкам;
- Повышать пользовательский опыт, предоставляя релевантную информацию;
- Автоматизировать процесс изменения заголовков без необходимости вручную редактировать каждую страницу.
Основные хуки для изменения заголовков в WordPress
В WordPress заголовок страницы выводится в теге <title> и в заголовках контента (например, <h1>). Для динамического изменения заголовка можно использовать несколько хуков:
wp_title— старый фильтр для изменения заголовка в <title>, но сейчас не рекомендуется;pre_get_document_title— фильтр для изменения заголовка, генерируемого функциейwp_get_document_title();document_title_parts— фильтр позволяет изменить части заголовка;the_title— фильтр для изменения заголовков записей и страниц;get_the_archive_title— для изменения заголовков архивов.
Пример использования фильтра pre_get_document_title для динамического заголовка
Добавим код в файл functions.php вашей темы или в плагин:
function wp_puzzle_pre_get_document_title( $title ) {
if ( is_category() ) {
$category = single_cat_title( '', false );
$title = 'Статьи в категории: ' . $category . ' | WP Puzzle';
} elseif ( is_tag() ) {
$tag = single_tag_title( '', false );
$title = 'Записи с меткой: ' . $tag . ' | WP Puzzle';
} elseif ( is_singular('post') ) {
$post_title = get_the_title();
$title = $post_title . ' - подробный обзор | WP Puzzle';
}
return $title;
}
add_filter( 'pre_get_document_title', 'wp_puzzle_pre_get_document_title' );В этом примере для категории и тега заголовок будет содержать название категории/метки, а для одиночных записей — добавлять уточняющий текст.
Динамическое изменение заголовков внутри контента
Иногда нужно менять не только тег <title>, но и отображаемые заголовки на странице. Для этого используется фильтр the_title.
function wp_puzzle_the_title_dynamic( $title, $id = null ) {
if ( is_admin() ) return $title; // не менять в админке
if ( is_singular('post') && in_the_loop() && !is_page() ) {
$title .= ' [Обновлено]';
}
return $title;
}
add_filter( 'the_title', 'wp_puzzle_the_title_dynamic', 10, 2 );Этот код добавляет метку «[Обновлено]» к заголовкам записей на фронтенде.
Использование фильтра get_the_archive_title для кастомизации заголовков архивов
Архивы категорий, тегов и дат выводят заголовки по умолчанию. Чтобы сделать их более понятными и SEO-дружелюбными, можно изменить формат:
function wp_puzzle_custom_archive_title( $title ) {
if ( is_category() ) {
$title = 'Категория: ' . single_cat_title( '', false );
} elseif ( is_tag() ) {
$title = 'Метки: ' . single_tag_title( '', false );
} elseif ( is_author() ) {
$title = 'Автор: ' . get_the_author();
}
return $title;
}
add_filter( 'get_the_archive_title', 'wp_puzzle_custom_archive_title' );Таким образом заголовки архивов будут выглядеть более структурировано и понятно.
Рекомендации по использованию и тестированию динамических заголовков
При реализации динамических заголовков:
- Убедитесь, что заголовки уникальны и содержат ключевые слова;
- Не добавляйте слишком длинные тексты, чтобы не обрезались в поисковой выдаче;
- Тестируйте на различных типах страниц (записи, страницы, архивы, категории);
- Проверяйте работу с SEO-плагинами (Yoast SEO, RankMath) — иногда они могут переписывать заголовки;
- Используйте инструменты для просмотра исходного кода страницы, чтобы убедиться, что заголовок меняется.
Плагины для удобного управления заголовками в WordPress
Если вы предпочитаете готовые решения, обратите внимание на плагины:
- Clearfy Pro — оптимизация и управление SEO, включая заголовки;
- WPRemark — для создания отзывов с правильными заголовками;
- Yoast SEO и RankMath — популярные SEO-плагины с мощным контролем заголовков.
Но если вы хотите точечно управлять заголовками под конкретные задачи, лучше использовать хуки, описанные выше.