Почему важна автоматизация заголовков в WordPress
Автоматизация заголовков для постов в WordPress может значительно сэкономить время при массовом добавлении контента, а также обеспечить единообразие и структуру на сайте. Особенно это актуально для сайтов с большим количеством записей, новостных порталов или каталогов, где заголовки формируются по определённому шаблону.
Кроме того, автоматические заголовки помогают избежать ошибок и пропусков при заполнении, что положительно сказывается на SEO и удобстве пользователей.
В этой статье мы рассмотрим, как реализовать автоматическое создание заголовков через функции WordPress, а также какие плагины помогут упростить задачу без глубоких знаний программирования.
Использование хука wpmark_autotitle для автоматической генерации заголовков
В WordPress для изменения заголовка перед сохранением записи можно использовать хук save_post. Ниже пример функции wpmark_autotitle_generate, которая проверяет, есть ли заголовок у записи, и если нет — задаёт его автоматически согласно шаблону.
function wpmark_autotitle_generate( $post_id ) {
// Проверяем, что это не автосохранение
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
// Получаем объект поста
$post = get_post( $post_id );
if ( !$post || $post->post_type !== 'post' ) return;
// Если заголовок уже есть, ничего не меняем
if ( !empty( $post->post_title ) ) return;
// Пример шаблона заголовка: 'Статья №{ID} от {Дата}'
$date = date_i18n( 'd.m.Y', strtotime( $post->post_date ) );
$new_title = sprintf( 'Статья №%d от %s', $post_id, $date );
// Обновляем заголовок
wp_update_post( [
'ID' => $post_id,
'post_title' => $new_title
] );
}
add_action( 'save_post', 'wpmark_autotitle_generate' );В этом коде функция срабатывает при сохранении записи и устанавливает заголовок, если он пустой. Вы можете адаптировать шаблон под свои нужды, добавив, например, метаполя, таксономии или другие параметры.
Расширение функции: использование пользовательских полей в заголовке
Чтобы сделать заголовок более информативным, можно задействовать пользовательские поля. Например, если у вас есть поле wpmark_subtitle, его содержимое можно включить в заголовок:
function wpmark_autotitle_generate( $post_id ) {
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
$post = get_post( $post_id );
if ( !$post || $post->post_type !== 'post' ) return;
if ( !empty( $post->post_title ) ) return;
$subtitle = get_post_meta( $post_id, 'wpmark_subtitle', true );
$date = date_i18n( 'd.m.Y', strtotime( $post->post_date ) );
if ( $subtitle ) {
$new_title = sprintf( 'Статья: %s (%s)', $subtitle, $date );
} else {
$new_title = sprintf( 'Статья №%d от %s', $post_id, $date );
}
wp_update_post( [
'ID' => $post_id,
'post_title' => $new_title
] );
}
add_action( 'save_post', 'wpmark_autotitle_generate' );Такой подход позволяет гибко управлять заголовками без ручного ввода.
Плагины для автоматической генерации заголовков в WordPress
Если вы не хотите писать код, можно использовать готовые решения. Вот несколько плагинов, которые помогут автоматизировать создание заголовков:
- Auto Post Title: простой плагин, который подставляет шаблонный заголовок для новых постов. Позволяет использовать переменные, такие как дата, ID, категории.
- Title Experiments Free: позволяет создавать заголовки на основе условий и автоматизировать их генерацию с A/B тестированием. Полезно для оптимизации SEO.
- Custom Post Type Auto Title: подходит для сайтов с кастомными типами записей, автоматизирует заголовки по заданным шаблонам.
Все эти плагины доступны в официальном репозитории WordPress. Для установки через админку перейдите в «Плагины» → «Добавить новый» и введите название плагина.
Также можно рассмотреть плагин WPRemark, который помимо отзывов имеет функции автоматизации контента, что может пригодиться для комплексного управления заголовками и отзывами.
Как интегрировать автоматические заголовки с WP REST API
Если вы используете REST API для создания постов с внешних сервисов, важно, чтобы заголовки генерировались автоматически и там. Для этого можно использовать тот же хук save_post, который работает и при создании через API.
Пример: при создании записи через REST API без заголовка, функция wpmark_autotitle_generate сработает и задаст заголовок перед сохранением.
Если нужно, можно добавить кастомный эндпоинт, который будет возвращать автоматически сгенерированные заголовки для новых данных — это удобно для интеграций и внешних приложений.
Как отключить автоматическую генерацию заголовков для отдельных категорий или типов постов
Иногда автоматизация нужна не для всех записей. Чтобы исключить определённые категории, можно добавить проверку внутри функции:
function wpmark_autotitle_generate( $post_id ) {
if ( defined('DOING_AUTOSAVE') && DOING_AUTOSAVE ) return;
$post = get_post( $post_id );
if ( !$post || $post->post_type !== 'post' ) return;
if ( !empty( $post->post_title ) ) return;
// Получаем категории
$categories = wp_get_post_categories( $post_id );
// ID категории, для которой не нужно генерировать заголовок
$exclude_cat_id = 5;
if ( in_array( $exclude_cat_id, $categories ) ) return;
$date = date_i18n( 'd.m.Y', strtotime( $post->post_date ) );
$new_title = sprintf( 'Автозаголовок №%d от %s', $post_id, $date );
wp_update_post( [
'ID' => $post_id,
'post_title' => $new_title
] );
}
add_action( 'save_post', 'wpmark_autotitle_generate' );Таким образом, вы сможете тонко настраивать поведение и не мешать ручной работе редакторов.
Заключение по теме автоматического создания заголовков
Автоматизация заголовков — мощный инструмент для увеличения скорости публикации и улучшения качества контента. Используя приведённые примеры кода и плагины, вы сможете быстро настроить процесс на своём сайте WordPress.
Для более глубокой автоматизации и интеграции с отзывами и пользовательским контентом советуем обратить внимание на решения от WPGShop, которые позволяют расширять функционал сайта без лишних усилий.