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

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

Что такое хуки WordPress и зачем они нужны для изменения заголовков

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

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

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

Пример: добавление префикса к заголовку всех постов

Давайте рассмотрим простой пример. Нужно добавить слово «Новинка:» перед каждым заголовком поста, но только на главной странице блога.

function wp_pro_add_prefix_to_title($title, $id = null) {
    if (is_home() && in_the_loop() && is_main_query()) {
        $title = 'Новинка: ' . $title;
    }
    return $title;
}
add_filter('the_title', 'wp_pro_add_prefix_to_title', 10, 2);

Здесь мы проверяем, что вывод идет на главной странице блога (is_home()), внутри основного цикла (in_the_loop() и is_main_query()), чтобы не менять заголовки в админке или виджетах. Затем добавляем префикс к заголовку.

Динамическое изменение заголовка по дате публикации

Иногда нужно менять заголовок в зависимости от даты публикации поста. Например, добавить пометку «Архив» для записей старше года.

function wp_pro_modify_title_by_date($title, $id = null) {
    if (get_post_type($id) === 'post' && in_the_loop() && is_main_query()) {
        $post_date = get_the_date('Y-m-d', $id);
        $one_year_ago = date('Y-m-d', strtotime('-1 year'));
        if ($post_date < $one_year_ago) {
            $title = 'Архив: ' . $title;
        }
    }
    return $title;
}
add_filter('the_title', 'wp_pro_modify_title_by_date', 10, 2);

В этом коде мы получаем дату публикации поста, сравниваем с датой год назад и при необходимости добавляем префикс «Архив:».

Как исключить изменение заголовков в админке и RSS

При работе с фильтром the_title важно исключить админку и RSS ленты, чтобы не влиять на внутренние процессы и внешние подписки. Для этого добавим дополнительные проверки:

function wp_pro_safe_title_modification($title, $id = null) {
    if (is_admin() || is_feed()) {
        return $title;
    }
    // Ваша логика изменения заголовка
    return $title;
}
add_filter('the_title', 'wp_pro_safe_title_modification', 10, 2);

Это стандартная практика для избежания неожиданных багов.

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

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

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

Пример сложного изменения заголовков с условием на пользовательские поля

Предположим, у вас есть произвольное поле highlight, и если оно установлено, нужно выделять заголовок специальным тегом <mark>.

function wp_pro_highlight_title($title, $id = null) {
    if (in_the_loop() && is_main_query() && !is_admin()) {
        $highlight = get_post_meta($id, 'highlight', true);
        if ($highlight === 'yes') {
            $title = '<mark>' . $title . '</mark>';
        }
    }
    return $title;
}
add_filter('the_title', 'wp_pro_highlight_title', 10, 2);

Это простой и эффективный прием визуально выделить важные записи без изменения шаблонов.

Советы по отладке изменений заголовков через хуки

Чтобы убедиться, что ваши фильтры работают корректно, используйте error_log или функции для вывода отладочной информации, например:

function wp_pro_debug_title($title, $id = null) {
    error_log('Изменяем заголовок для поста ID: ' . $id);
    return $title;
}
add_filter('the_title', 'wp_pro_debug_title', 10, 2);

Также проверяйте, что фильтр применяется только там, где нужно, избегая изменений в админке или RSS. Для этого используйте условия is_admin(), is_feed(), in_the_loop().

Заключение по теме

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

Если вы хотите упростить работу, рассмотрите плагины типа Clearfy Pro, которые предоставляют готовые инструменты для управления фильтрами и оптимизации контента.

Как автоматизировать создание отзывов в WordPress с помощью плагинов и кода
23.01.2026
Решение проблем с хостингом для WooCommerce в WordPress
08.12.2025
WooCommerce: отключение автоподгрузки корзины и настройка обновления без перезагрузки страницы
03.05.2026
WooCommerce: автоматическое изменение стоимости товаров при акциях
24.04.2026
Как избежать фейковых отзывов на WordPress сайте
17.12.2025