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

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

Почему важна автоматическая генерация заголовков в WordPress

При создании большого количества записей вручную или при импорте из CSV, XML и других форматов не всегда удобно задавать заголовки вручную. Часто заголовок можно сформировать по шаблону из других данных записи. Например, для новостей — дата + категория, для обзоров — бренд + модель, для рецептов — название блюда + время приготовления.

Автоматические заголовки помогают:

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

Как создать автоматическую генерацию заголовков: пример с WPDirect

Давайте рассмотрим практический пример. Допустим, у нас есть кастомные поля wpdirect_brand и wpdirect_model для типа записи product. Задача — если заголовок пуст, автоматически сформировать его как «Бренд Модель».

Для этого воспользуемся хуком save_post, который срабатывает при сохранении записи.

Код для добавления в functions.php или в плагин

function wpdirect_set_auto_title( $post_id ) {
    // Проверяем тип записи
    if ( get_post_type( $post_id ) !== 'product' ) {
        return;
    }

    // Получаем текущий заголовок
    $title = get_the_title( $post_id );
    if ( ! empty( $title ) ) {
        return; // Если заголовок есть, ничего не делаем
    }

    // Получаем кастомные поля
    $brand = get_post_meta( $post_id, 'wpdirect_brand', true );
    $model = get_post_meta( $post_id, 'wpdirect_model', true );

    if ( empty( $brand ) && empty( $model ) ) {
        return; // Нет данных для формирования заголовка
    }

    // Формируем заголовок
    $new_title = trim( $brand . ' ' . $model );

    // Сохраняем заголовок без срабатывания бесконечной рекурсии
    remove_action( 'save_post', 'wpdirect_set_auto_title' );
    wp_update_post( array(
        'ID' => $post_id,
        'post_title' => $new_title
    ) );
    add_action( 'save_post', 'wpdirect_set_auto_title' );
}
add_action( 'save_post', 'wpdirect_set_auto_title' );

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

Автоматические заголовки с учётом даты и категории

Можно сделать генерацию более сложной, например, для новостного типа записей news:

  • Дата публикации в формате ДД.ММ.ГГГГ.
  • Название категории.
  • Краткое описание из мета-поля wpdirect_summary.

Такой заголовок будет выглядеть как «12.06.2024 Новости IT: Обновление WordPress».

Пример кода

function wpdirect_news_auto_title( $post_id ) {
    if ( get_post_type( $post_id ) !== 'news' ) {
        return;
    }

    $title = get_the_title( $post_id );
    if ( ! empty( $title ) ) {
        return;
    }

    $post = get_post( $post_id );
    $date = date_i18n( 'd.m.Y', strtotime( $post->post_date ) );

    $categories = get_the_terms( $post_id, 'category' );
    $category_name = '';
    if ( ! is_wp_error( $categories ) && ! empty( $categories ) ) {
        $category_name = $categories[0]->name;
    }

    $summary = get_post_meta( $post_id, 'wpdirect_summary', true );
    $summary = ! empty( $summary ) ? $summary : '';

    $new_title = trim( $date . ' ' . $category_name . ': ' . $summary );

    remove_action( 'save_post', 'wpdirect_news_auto_title' );
    wp_update_post( array(
        'ID' => $post_id,
        'post_title' => $new_title
    ) );
    add_action( 'save_post', 'wpdirect_news_auto_title' );
}
add_action( 'save_post', 'wpdirect_news_auto_title' );

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

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

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

  • Auto Post Title — плагин, который позволяет настраивать шаблоны заголовков на основе полей и таксономий. Поддерживает динамические переменные.
  • Clearfy Pro — комплексное решение для оптимизации WordPress, в том числе содержит инструменты для автоматизации и SEO, включая управление заголовками.

Плагины упрощают настройку, но код даёт максимальную гибкость и контроль.

Советы по автоматизации заголовков в WPDirect

При автоматической генерации важно учитывать следующие моменты:

  • Проверяйте, чтобы заголовок не был пустым после генерации.
  • Используйте функции WordPress для работы с датами и таксономиями, чтобы код был локализован и корректно работал с разными языками.
  • Добавьте проверку на права пользователя, если автоматизация запускается при ручном сохранении.
  • Обрабатывайте ситуации, когда некоторых данных нет — например, ставьте заголовок «Без названия» или используйте дефолтные значения.

Заключение

Автоматическая генерация заголовков в WordPress поможет упростить работу с большим объёмом записей и обеспечит единообразие контента. Используйте хук save_post для вставки своего кода или обращайтесь к готовым плагинам, таким как Auto Post Title и Clearfy Pro. Внимательно тестируйте решения на тестовом сайте перед применением на живом проекте.

Как использовать REST API в WordPress для расширения функционала
11.11.2025
Как удалить или спрятать страницы в WordPress без удаления
11.01.2026
Как использовать WPCommunity для создания социальной сети на WordPress
29.01.2026
Как создать собственный виджет WordPress
28.11.2025
Как создать динамический PDF-файл в WordPress с помощью PHP
05.01.2026