Как динамически изменить автозаголовки записей в WordPress

В стандартном WordPress заголовок записи задаётся вручную и остаётся статичным после публикации. Однако бывают ситуации, когда нужно изменить заголовок динамически — например, добавить дату, статус, или дополнительную информацию в зависимости от контекста показа.

Зачем изменять заголовки динамически?

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

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

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

Способы динамического изменения заголовков в WordPress

1. Использование фильтра the_title

В WordPress есть фильтр the_title, который позволяет изменять заголовок записи в момент вывода. Это самый простой и гибкий способ.

Пример функции, которая добавляет текущий год к заголовку записи:

function wpdir_filter_the_title($title, $id = null) {
    if (is_singular('post') && in_the_loop() && !is_admin()) {
        $year = get_the_date('Y', $id);
        $title .= ' (' . $year . ')';
    }
    return $title;
}
add_filter('the_title', 'wpdir_filter_the_title', 10, 2);

Этот код добавляет год публикации в скобках после заголовка записи при её просмотре на сайте.

2. Создание плагина для динамического управления заголовками

Чтобы более удобно управлять изменениями, можно оформить функционал в плагин с настройками через админку. Например, плагин Clearfy Pro позволяет в том числе управлять SEO-настройками заголовков без кода.

Для собственных задач можно использовать следующий шаблон плагина:

<?php
/**
 * Plugin Name: WPDir Dynamic Titles
 * Description: Динамическое изменение заголовков записей.
 * Version: 1.0
 * Author: WPDir
 */

function wpdir_dynamic_titles_filter($title, $id = null) {
    if (is_singular('post') && in_the_loop() && !is_admin()) {
        $custom_text = ' - Актуально на ' . date('d.m.Y');
        $title .= $custom_text;
    }
    return $title;
}
add_filter('the_title', 'wpdir_dynamic_titles_filter', 10, 2);

Плагин можно расширить, добавив настройки в админке для настройки текста и условий добавления.

3. Использование плагинов SEO для динамического управления заголовками

Многие SEO-плагины, такие как Yoast SEO, All in One SEO, позволяют настраивать шаблоны заголовков записей и страниц с использованием переменных. Это альтернатива программированию — можно задать шаблон, например, %%title%% - Новости от %%date%%.

Однако такой подход работает только для мета-заголовков в <title> и мета-тегах, а не для видимых заголовков на странице. Для видимых заголовков нужен код.

4. Пример расширенного кода: добавление статуса и метки

Допустим, нужно добавить к заголовку информацию о статусе записи (черновик, опубликовано) и метку, если есть. Вот пример:

function wpdir_dynamic_title_with_status($title, $id = null) {
    if (is_singular('post') && in_the_loop() && !is_admin()) {
        $post = get_post($id);
        if (!$post) return $title;

        $status = $post->post_status === 'publish' ? 'Опубликовано' : 'Черновик';

        $tags = get_the_tags($id);
        $tag_names = '';
        if ($tags && !is_wp_error($tags)) {
            $tag_names_arr = wp_list_pluck($tags, 'name');
            $tag_names = ' [' . implode(', ', $tag_names_arr) . ']';
        }

        $title .= ' - ' . $status . $tag_names;
    }
    return $title;
}
add_filter('the_title', 'wpdir_dynamic_title_with_status', 10, 2);

Этот код добавит к заголовку " - Опубликовано [метки]" или " - Черновик [метки]".

Рекомендации и важные моменты

  • Фильтр the_title срабатывает для всех заголовков, в том числе в админке. Поэтому важно ограничить условиями, чтобы не сломать интерфейс.
  • Используйте проверку is_admin() и контекста вывода.
  • Для SEO мета-заголовков используйте SEO-плагины с шаблонами.
  • Если у вас сложные условия — лучше сделать плагин с настройками.

Заключение

Динамическое изменение заголовков записей в WordPress — мощный инструмент для улучшения UX и SEO. Используя фильтр the_title, можно добавлять любую информацию в заголовок без изменения самих записей. Расширение этого функционала в плагин с настройками сделает управление удобнее.

Если хотите быстро улучшить SEO-заголовки, обратите внимание на Clearfy Pro — удобный инструмент с множеством функций для оптимизации WordPress.

WooCommerce: автоматическая очистка корзины после успешной оплаты
10.05.2026
Как удалить или заблокировать доступ по IP в WordPress
25.02.2026
Как изменить URL входа в админку WordPress без плагинов
20.03.2026
Автозаполнение метаданных для постов WordPress: примеры и настройка
06.03.2026
Как создать уникальный обработчик Ajax в WordPress с нуля
23.01.2026