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

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

Почему стоит автоматизировать заголовки в WordPress

Автоматическое формирование заголовков позволяет:

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

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

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

Хук save_post срабатывает при сохранении или обновлении записи. С его помощью можно изменить заголовок поста программно.

Ниже приведен пример функции wp3_change_post_title, которая автоматически проставляет заголовок в формате «Пост №ID - Дата публикации»:

function wp3_change_post_title($post_id) {
    // Проверяем, не является ли это автосохранением
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;

    // Проверяем права пользователя
    if (!current_user_can('edit_post', $post_id)) return;

    // Получаем объект поста
    $post = get_post($post_id);
    if ($post->post_type != 'post') return;

    // Формируем новый заголовок
    $new_title = 'Пост №' . $post_id . ' - ' . date('d.m.Y', strtotime($post->post_date));

    // Если заголовок уже такой, ничего не делаем
    if ($post->post_title === $new_title) return;

    // Обновляем заголовок без генерации бесконечного цикла
    remove_action('save_post', 'wp3_change_post_title');
    wp_update_post([
        'ID' => $post_id,
        'post_title' => $new_title
    ]);
    add_action('save_post', 'wp3_change_post_title');
}
add_action('save_post', 'wp3_change_post_title');

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

Расширение: добавление категории в автозаголовок

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

function wp3_change_post_title_with_category($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (!current_user_can('edit_post', $post_id)) return;
    $post = get_post($post_id);
    if ($post->post_type != 'post') return;

    $categories = get_the_category($post_id);
    $category_name = !empty($categories) ? $categories[0]->name : 'Без категории';

    $new_title = 'Пост №' . $post_id . ' - ' . $category_name . ' - ' . date('d.m.Y', strtotime($post->post_date));

    if ($post->post_title === $new_title) return;

    remove_action('save_post', 'wp3_change_post_title_with_category');
    wp_update_post([
        'ID' => $post_id,
        'post_title' => $new_title
    ]);
    add_action('save_post', 'wp3_change_post_title_with_category');
}
add_action('save_post', 'wp3_change_post_title_with_category');

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

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

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

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

Обработка автозаголовков для кастомных типов записей

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

function wp3_custom_post_type_title($post_id) {
    if (defined('DOING_AUTOSAVE') && DOING_AUTOSAVE) return;
    if (!current_user_can('edit_post', $post_id)) return;
    $post = get_post($post_id);

    if ($post->post_type != 'portfolio') return; // Замените на ваш тип

    $new_title = 'Портфолио #' . $post_id . ' от ' . date('d.m.Y', strtotime($post->post_date));

    if ($post->post_title === $new_title) return;

    remove_action('save_post', 'wp3_custom_post_type_title');
    wp_update_post([
        'ID' => $post_id,
        'post_title' => $new_title
    ]);
    add_action('save_post', 'wp3_custom_post_type_title');
}
add_action('save_post', 'wp3_custom_post_type_title');

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

Советы по предотвращению проблем с SEO и пользовательским опытом

Автоматическая замена заголовков может повлиять на SEO и удобство пользователей. Чтобы избежать проблем, учитывайте следующие моменты:

  • Не изменяйте заголовки уже опубликованных популярных страниц — это может повлиять на индексацию.
  • Используйте понятные и информативные шаблоны заголовков.
  • Тестируйте изменения на тестовом сайте перед внедрением в продакшен.
  • При необходимости добавляйте мета-теги и описания, чтобы сохранить качество SEO.

Итоговые рекомендации

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

Как автоматизировать удаление спама в комментариях WordPress
08.02.2026
Как массово удалить и изменить атрибуты alt у изображений в WordPress
07.01.2026
Как использовать WPRemark для автоматического модерирования комментариев в WordPress
31.12.2025
Как создать свой виджет в WordPress с примерами кода
04.12.2025
Как автоматизировать создание бэкапов в WordPress
17.11.2025