Как использовать хуки для динамического изменения заголовков страниц в WordPress

В WordPress заголовки страниц играют ключевую роль не только для пользователей, но и для SEO. Иногда возникает задача динамически менять заголовки страниц в зависимости от условий — типа контента, параметров URL или действий пользователя. Для этого удобно использовать хуки (actions и filters), которые позволяют вмешиваться в процесс формирования заголовков без изменения ядра WordPress или темы.

Почему важно динамически менять заголовки страниц в WordPress

Стандартные заголовки страниц зачастую статичны и не отражают текущий контекст. Например, для архивной страницы категорий хочется добавить описание категории в заголовок, а для страницы с параметрами фильтра — учесть выбранные фильтры. Это помогает:

  • Улучшить поведенческие факторы — пользователь видит актуальный заголовок.
  • Повысить релевантность для поисковых систем — уникальные заголовки для каждой страницы.
  • Сделать сайт более интерактивным и адаптивным к действиям пользователя.

Далее рассмотрим, как используя фильтры WordPress, динамически менять заголовки в разных ситуациях.

Использование фильтра wp-team_filter_wp_title для динамического изменения заголовков

В WordPress есть фильтр wp_title, который используют для изменения тега <title> в заголовке страницы. Однако в современных темах чаще применяется функция document_title_parts. Мы создадим универсальную функцию с префиксом wpteam_ для примера.

Пример функции для изменения заголовка с учетом категории и параметров URL:

function wpteam_dynamic_page_title($title_parts) {
    // Добавим название категории на страницах архивов
    if (is_category()) {
        $category = get_queried_object();
        $title_parts['title'] = 'Статьи в категории: ' . $category->name;
    }

    // Добавим параметр ?filter=xyz в заголовок, если он есть
    if (isset($_GET['filter'])) {
        $filter = sanitize_text_field($_GET['filter']);
        $title_parts['title'] .= ' - Фильтр: ' . $filter;
    }

    return $title_parts;
}
add_filter('document_title_parts', 'wpteam_dynamic_page_title');

Этот код проверяет, если пользователь на странице категории, то заголовок меняется на «Статьи в категории: Имя категории». Если же в URL есть параметр filter, он добавляется к заголовку.

Динамическое изменение заголовков для кастомных типов записей и таксономий

Если на сайте используются собственные типы записей (Custom Post Types) и таксономии, можно расширить функцию для них.

function wpteam_dynamic_title_for_custom_post_types($title_parts) {
    if (is_singular('wp_team_project')) {
        $project_title = get_the_title();
        $title_parts['title'] = 'Проект: ' . $project_title;
    }
    if (is_tax('wp_team_skill')) {
        $term = get_queried_object();
        $title_parts['title'] = 'Навыки: ' . $term->name;
    }
    return $title_parts;
}
add_filter('document_title_parts', 'wpteam_dynamic_title_for_custom_post_types', 20);

В этом примере для типа записи wp_team_project заголовок будет начинаться с «Проект:», а для таксономии wp_team_skill — с «Навыки:». Такой подход дает гибкость и улучшает UX.

Использование плагинов для расширенного управления заголовками

Если хочется использовать готовые решения с визуальным интерфейсом и расширенными возможностями, рассмотрите плагины:

  • Clearfy Pro — оптимизация SEO и настройка заголовков.
  • JournalX — тема с гибкими настройками заголовков и SEO.

Эти инструменты позволяют задавать шаблоны заголовков для разных типов страниц без программирования.

Советы по безопасному и корректному применению фильтров заголовков

При работе с динамическими заголовками важно:

  • Использовать функции очистки данных, например, sanitize_text_field для параметров из URL.
  • Не переопределять заголовок полностью, если в этом нет нужды — лучше дополнять.
  • Тестировать изменения на разных страницах и устройствах.

Таким образом, динамическое изменение заголовков через хуки помогает сделать сайт адаптивным и SEO-дружественным.

Как установить и настроить WPCommunity для создания форума в WordPress
07.01.2026
Как использовать хук pre_get_posts для сложной фильтрации в WordPress
22.01.2026
Как использовать AJAX в WordPress для динамического обновления контента
03.12.2025
Автоматическое отключение плагинов при возникновении ошибок в WordPress
08.04.2026
Как создать собственный шорткод в WordPress для удобного вывода контента
02.11.2025