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

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

Причины и сценарии удаления слов из заголовков

Причины, по которым может понадобиться удалять слова из заголовков:

  • Избавиться от повторяющихся слов, например, «Обзор», «Отзывы» или «Тест» в начале заголовков;
  • Сделать заголовки более лаконичными для отображения на страницах с архивами или в списках;
  • Удалить брендовые названия или ключевые слова, которые не нужны в текущем контексте;
  • Оптимизировать заголовки под разные языковые версии.

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

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

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

Пример функции, которая убирает слова «Обзор», «Тест» и «Отзывы» из заголовков:

function cyrtolat_remove_words_from_title($title) {
    // Массив слов для удаления
    $words_to_remove = array('Обзор', 'Тест', 'Отзывы');

    foreach ($words_to_remove as $word) {
        // Удаляем слово, если оно встречается в заголовке (с учётом регистра)
        $title = preg_replace('/\b' . preg_quote($word, '/') . '\b/ui', '', $title);
    }

    // Убираем лишние пробелы
    $title = trim(preg_replace('/\s+/', ' ', $title));

    return $title;
}
add_filter('the_title', 'cyrtolat_remove_words_from_title');

Здесь мы используем регулярное выражение, чтобы удалить точные совпадения слов по границам слова (\b) и игнорируем регистр (u и i флаги).

Как тестировать и использовать этот код

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

Пример расширенного варианта с настройкой через админку

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

  • Создать страницу настроек через add_options_page();
  • Сохранить список слов в опциях;
  • Подключить их в фильтр.

Пример добавления настроек:

function cyrtolat_register_settings() {
    add_options_page('Удаление слов из заголовков', 'Удаление слов из заголовков', 'manage_options', 'cyrtolat-remove-words', 'cyrtolat_settings_page');
    register_setting('cyrtolat_options_group', 'cyrtolat_words_to_remove');
}
add_action('admin_menu', 'cyrtolat_register_settings');

function cyrtolat_settings_page() {
    ?>
    <div class="wrap">
        <h1>Настройки удаления слов из заголовков</h1>
        <form method="post" action="options.php">
            <?php settings_fields('cyrtolat_options_group'); ?>
            <?php do_settings_sections('cyrtolat_options_group'); ?>
            <label>Введите слова для удаления через запятую:</label><br>
            <input type="text" name="cyrtolat_words_to_remove" value="<?php echo esc_attr(get_option('cyrtolat_words_to_remove', 'Обзор,Тест,Отзывы')); ?>" style="width: 400px;">
            <?php submit_button(); ?>
        </form>
    </div>
    <?php
}

function cyrtolat_remove_words_from_title($title) {
    $words_option = get_option('cyrtolat_words_to_remove', 'Обзор,Тест,Отзывы');
    $words_to_remove = array_map('trim', explode(',', $words_option));

    foreach ($words_to_remove as $word) {
        if ($word === '') continue;
        $title = preg_replace('/\b' . preg_quote($word, '/') . '\b/ui', '', $title);
    }
    $title = trim(preg_replace('/\s+/', ' ', $title));
    return $title;
}
add_filter('the_title', 'cyrtolat_remove_words_from_title');

Теперь можно спокойно менять список слов без правки кода.

Как решить проблему сохранения SEO и индексации

Удаление слов из заголовков на фронтенде — это хорошо для отображения, но поисковые системы видят исходные заголовки из базы. Если хотите, чтобы изменения также отражались на уровне SEO, можно сделать:

  • Автоматическую фильтрацию заголовков в базе при сохранении записи (через хук save_post), но это необратимо и может навредить;
  • Использовать мета-поля для хранения оригинального заголовка, а на фронтенде выводить модифицированный;
  • Настроить SEO-плагины (Yoast, RankMath) на вывод кастомных заголовков с учётом фильтрации.

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

function cyrtolat_filter_title_on_save($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (wp_is_post_revision($post_id)) return;

    $post = get_post($post_id);
    if ($post->post_type !== 'post') return;

    $filtered_title = cyrtolat_remove_words_from_title($post->post_title);

    if ($filtered_title !== $post->post_title) {
        remove_action('save_post', 'cyrtolat_filter_title_on_save');
        wp_update_post(array('ID' => $post_id, 'post_title' => $filtered_title));
        add_action('save_post', 'cyrtolat_filter_title_on_save');
    }
}
add_action('save_post', 'cyrtolat_filter_title_on_save');

Но будьте осторожны: это навсегда изменит заголовки в базе.

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

Если вы хотите более гибкого управления заголовками и SEO, обратите внимание на плагины:

  • Clearfy Pro — расширяет возможности оптимизации и очистки заголовков;
  • WPGPT — генерация оптимизированных заголовков с помощью ИИ;
  • Yoast SEO, RankMath — стандартные SEO плагины с возможностью управлять шаблонами заголовков.

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

Выводы и рекомендации

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

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

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

⭐⭐⭐⭐⭐
WooCommerce: автоматическое отключение неактивных способов оплаты
04.06.2026
Как сделать автоматическую оптимизацию базы данных WordPress без плагинов
10.02.2026
WooCommerce: автоматическое изменение цены товара при обновлении заказа
25.05.2026
WooCommerce: автоматическое удаление старых заказов и очистка базы данных
20.06.2026
Как в WooCommerce автоматически исключить из каталога товары без остатка на складе
21.04.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше