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

В современных проектах на WordPress часто возникает необходимость динамически менять meta title страниц в зависимости от условий, контекста или пользовательских данных. Это помогает улучшить SEO и пользовательский опыт. В этой статье мы подробно рассмотрим, как с помощью хука WordPress изменить meta title, приводя практические примеры и код.

Почему важно менять meta title динамически

Meta title — это один из ключевых SEO-элементов, который определяет заголовок страницы в поисковой выдаче и вкладке браузера. Статичный заголовок не всегда отражает содержимое страницы, особенно если сайт использует кастомные типы записей, фильтры или динамический контент.

Динамическое изменение meta title позволяет:

  • Учитывать параметры запроса или фильтры
  • Улучшить уникальность заголовков для SEO
  • Предоставить пользователю релевантный заголовок уже на этапе просмотра вкладки браузера

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

Основной хук для изменения meta title — wp_title и document_title_parts

Ранее для вывода заголовка в WordPress использовался фильтр wp_title, однако начиная с WordPress 4.4, рекомендуется применять фильтр document_title_parts, который возвращает массив с частями заголовка. Он более гибкий и позволяет менять заголовок на любом участке сайта.

Для совместимости рассмотрим оба варианта, но рекомендуем использовать document_title_parts.

Фильтр document_title_parts

Вот пример функции, которая меняет meta title для определённого таксономического архива:

function wpbook_document_title_parts( $title_parts ) {
    if ( is_tax( 'category', 'novosti' ) ) {
        $title_parts['title'] = 'Новости компании — последние обновления';
    }
    return $title_parts;
}
add_filter( 'document_title_parts', 'wpbook_document_title_parts' );

В этом примере, если пользователь заходит на архив таксономии с категорией novosti, заголовок страницы изменится на «Новости компании — последние обновления».

Фильтр wp_title (устаревший)

Если тема не поддерживает document_title_parts, можно использовать:

function wpbook_wp_title( $title, $sep ) {
    if ( is_front_page() ) {
        $title = 'Главная страница — мой сайт';
    }
    return $title;
}
add_filter( 'wp_title', 'wpbook_wp_title', 10, 2 );

Но лучше переходить на современный метод через document_title_parts.

Динамическое изменение meta title в зависимости от пользовательских данных

Иногда требуется менять заголовок в зависимости от текущего пользователя, его роли или прочих параметров. Рассмотрим пример, когда заголовок меняется для авторизованных пользователей с ролью 'subscriber'.

function wpbook_dynamic_title_by_user( $title_parts ) {
    if ( is_singular() && is_user_logged_in() ) {
        $user = wp_get_current_user();
        if ( in_array( 'subscriber', (array) $user->roles ) ) {
            $title_parts['title'] .= ' — Добро пожаловать, ' . esc_html( $user->display_name );
        }
    }
    return $title_parts;
}
add_filter( 'document_title_parts', 'wpbook_dynamic_title_by_user' );

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

Использование плагина Clearfy Pro для управления SEO-заголовками

Если вы предпочитаете использовать готовые решения, плагин Clearfy Pro предлагает расширенные возможности для настройки meta title без кода. В плагине есть модуль SEO, позволяющий задавать шаблоны заголовков для любых типов страниц, а также условные правила.

Однако, если нужен более тонкий контроль или специфические сценарии, лучше использовать хуки, как показано выше.

Советы по отладке и проверке динамического meta title

После добавления кода обязательно проверьте работу на разных страницах сайта. Для этого:

  • Откройте исходный код страницы (Ctrl+U) и найдите тег <title>.
  • Используйте инструменты разработчика в браузере.
  • Проверьте кэширование: если используется кеширующий плагин, очистите кеш.
  • Проверьте работу на разных устройствах и с разными пользователями.

Если заголовок не меняется, убедитесь, что тема поддерживает document_title_parts (в functions.php должен быть вызов add_theme_support( 'title-tag' )).

Заключение

Динамическое изменение meta title в WordPress — мощный инструмент для улучшения SEO и удобства пользователей. Используя хук document_title_parts, вы можете гибко настраивать заголовки страниц под любые задачи. Если же предпочитаете готовые решения, обратите внимание на плагин Clearfy Pro.

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как создать динамические шаблоны в WordPress с помощью WPBook
12.01.2026
Как сделать автоматический rollback обновлений WordPress при ошибках
25.03.2026
Как успешно использовать REST API WordPress для автоматизации задач
24.02.2026
Как использовать pre_get_posts для исключения категории из главной ленты WordPress
22.04.2026
Как автоматически отключать плагины в WordPress по расписанию
12.03.2026
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее