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

В WordPress заголовок страницы (<title>) играет ключевую роль для SEO и пользовательского опыта. Часто возникает необходимость динамически менять заголовок в зависимости от контекста: типа страницы, категории, пользователя и других условий. В этой статье мы подробно разберём, как программно управлять заголовками страниц в WordPress, используя хуки, условные теги и фильтры.

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

Статический заголовок не всегда отражает содержание конкретной страницы. Динамический заголовок позволяет улучшить:

  • SEO — поисковые системы лучше индексируют страницы с уникальными, релевантными заголовками;
  • Пользовательский опыт — посетитель сразу понимает, о чём страница;
  • Универсальность темы — один шаблон может обслуживать разные типы контента с разными заголовками.

Рассмотрим несколько способов динамического изменения заголовков в WordPress на примерах.

Использование фильтра wprus_filter_wp_title для динамического заголовка (до WordPress 4.4)

До версии WordPress 4.4, заголовок страницы формировался с помощью фильтра wp_title. Мы создадим собственную функцию wprus_filter_wp_title, которая изменит заголовок в зависимости от типа страницы.

function wprus_filter_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', 'wprus_filter_wp_title', 10, 2);

Этот пример показывает базовое переключение заголовка для главной, категории и одиночного поста. Однако современный WordPress использует функцию add_theme_support('title-tag') и хуки pre_get_document_title и document_title_parts.

Динамическое изменение заголовка с помощью фильтра document_title_parts (рекомендуемый способ)

Начиная с WordPress 4.4, рекомендуется работать с фильтром document_title_parts, который передаёт массив с частями заголовка. Мы создадим функцию wprus_filter_document_title_parts, чтобы динамически менять заголовок.

function wprus_filter_document_title_parts($title) {
    if (is_singular('product')) {
        // Например, для кастомного типа записи 'product'
        $custom_field = get_post_meta(get_the_ID(), 'wprus_custom_title', true);
        if ($custom_field) {
            $title['title'] = $custom_field; // Заменяем заголовок на значение метаполя
        }
    } elseif (is_category()) {
        $title['title'] = 'Товары категории: ' . single_cat_title('', false);
    } elseif (is_front_page()) {
        $title['title'] = 'Добро пожаловать на ' . get_bloginfo('name');
    }
    return $title;
}
add_filter('document_title_parts', 'wprus_filter_document_title_parts');

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

Использование условных тегов для тонкой настройки заголовков

Условные теги WordPress — мощный инструмент для определения контекста страницы. Вот список часто используемых тегов в настройке заголовков:

  • is_home(), is_front_page() — главная страница;
  • is_single() — одиночная запись;
  • is_page() — статичная страница;
  • is_category(), is_tag() — категории и метки;
  • is_post_type_archive() — архив кастомного типа записи;
  • is_search() — страница поиска;
  • is_404() — страница ошибки 404.

Используя эти теги, можно создавать сложные правила изменения заголовков для любого типа страниц.

Пример: динамический заголовок для WooCommerce товаров

Если на вашем сайте установлен WooCommerce, можно изменить заголовок страницы товара и каталога следующим образом:

function wprus_filter_woocommerce_title_parts($title) {
    if (is_product()) {
        $product = wc_get_product(get_the_ID());
        $title['title'] = $product->get_name() . ' - Лучшие цены в магазине ' . get_bloginfo('name');
    } elseif (is_shop()) {
        $title['title'] = 'Каталог товаров ' . get_bloginfo('name');
    }
    return $title;
}
add_filter('document_title_parts', 'wprus_filter_woocommerce_title_parts');

Такой заголовок поможет выделить ваши товары в поиске и привлечь внимание пользователей.

Как проверить изменения заголовка и отладить

Чтобы увидеть результат, откройте исходный код страницы в браузере и найдите тег <title>. Если изменения не применяются, проверьте:

  • Поддерживает ли ваша тема title-tag (в файле functions.php должно быть add_theme_support('title-tag'););
  • Не переопределяется ли заголовок другими плагинами или функциями;
  • Правильно ли подключены фильтры и нет ли ошибок в коде.

Полезные плагины для управления заголовками в WordPress

Если не хотите писать код, можно использовать плагины с расширенными настройками заголовков:

  • Yoast SEO — позволяет задавать шаблоны заголовков для разных типов страниц;
  • All in One SEO Pack — альтернативный SEO плагин с гибкой настройкой;
  • Clearfy Pro — оптимизация и управление заголовками плюс множество полезных функций.

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

WooCommerce: как запретить отмену заказа по ролям пользователей
26.04.2026
WordPress изменение URL в Ajax без перезагрузки страницы: практическое руководство
10.12.2025
Как автоматизировать удаление старых ревизий в WordPress
09.01.2026
WooCommerce: как автоматически удалять старые неоплаченные заказы по времени
03.06.2026
Автоматическое создание категорий при импорте товаров WooCommerce: практическое руководство
15.04.2026
×
-15%
на премиум плагин
My Popup

Повысьте конверсию!

Получить скидку »