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

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

Зачем нужен автоматический заголовок поста

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

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

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

Существует несколько вариантов реализации:

  • Использование хука save_post для программного изменения заголовка при сохранении;
  • Создание пользовательского шорткода или функции для генерации заголовка при выводе;
  • Использование плагинов, расширяющих функционал постов (например, ACF для создания полей и их использования в заголовках);
  • Автоматизация через WP-CLI для пакетного обновления существующих записей.

Пример реализации с помощью хука save_post

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

function wp5_auto_set_post_title($post_id) {
    // Проверяем, чтобы это не была ревизия
    if (wp_is_post_revision($post_id)) return;

    $post = get_post($post_id);
    if ($post->post_status != 'publish') return; // Только для опубликованных

    // Получаем дату и категорию
    $date = get_the_date('Y-m-d', $post_id);
    $categories = get_the_category($post_id);
    $category_name = !empty($categories) ? $categories[0]->name : 'Без категории';

    // Формируем новый заголовок
    $new_title = "Новость от {$date} в категории {$category_name}";

    // Обновляем заголовок поста, если он отличается
    if ($post->post_title !== $new_title) {
        wp_update_post(array(
            'ID' => $post_id,
            'post_title' => $new_title
        ));
    }
}
add_action('save_post', 'wp5_auto_set_post_title');

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

Особенности и ограничения

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

Использование плагинов для расширенной автоматизации

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

Также мощный инструмент — WPRemark, который можно использовать для динамического управления содержимым постов.

Автоматическая генерация заголовков на основе пользовательских полей (ACF)

Если вы используете плагин Advanced Custom Fields (ACF), можно создавать заголовки, комбинируя значения из пользовательских полей. Пример:

function wp5_acf_auto_title($post_id) {
    if (wp_is_post_revision($post_id)) return;

    $field_value = get_field('custom_field', $post_id);
    if (!$field_value) return;

    $new_title = "Запись: " . $field_value;

    $post = get_post($post_id);
    if ($post->post_title !== $new_title) {
        wp_update_post(array(
            'ID' => $post_id,
            'post_title' => $new_title
        ));
    }
}
add_action('save_post', 'wp5_acf_auto_title');

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

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

Автоматическая генерация заголовков в WordPress — мощный инструмент для оптимизации контента и поддержки консистентности. Для реализации подбирайте метод исходя из задач и масштаба сайта.

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

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

Как удалить старые или неиспользуемые мета данные в WordPress
05.12.2025
Как создать собственный REST API endpoint в WordPress с примерами кода
28.11.2025
WooCommerce: автоматическое изменение стоимости товара при изменении атрибутов
09.06.2026
Как установить автоматические редиректы в WordPress: практическое руководство
03.03.2026
Как удалить пустые термины в таксономиях WordPress программно
16.12.2025