Автоматическая генерация заголовков для записей в 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. Внимательно тестируйте решения на тестовом сайте перед применением на живом проекте.