Автоматизация создания контента — важная задача для многих сайтов на WordPress, особенно если нужно регулярно обновлять информацию, не прибегая к ручному редактированию. В этой статье мы рассмотрим, как создать автоматические записи с динамическим, обновляемым контекстом, используя возможности ядра WordPress, а также подключим плагины и напишем полезный код для гибкой работы.
Почему нужны автоматические записи с обновляемым контекстом
Ведение блога или новостного сайта часто требует обновления информации: цены, курсы валют, расписание, данные из внешних источников и т.д. Ручное обновление — рутинная работа, которую можно автоматизировать. Автоматические записи с динамическим содержимым позволяют:
- Экономить время на редактировании.
- Обеспечить актуальность данных.
- Поддерживать постоянный приток свежего контента для SEO.
Реализовать это можно несколькими способами: через планировщик задач WordPress (WP-Cron), REST API, сторонние плагины, а также кастомный код.
Создание автоматических записей с использованием WP-Cron
WP-Cron — встроенный в WordPress механизм планирования задач. Мы можем создать событие, которое будет запускать функцию для генерации или обновления записей.
Пример создания задачи WP-Cron
function wplancer_schedule_auto_post() {
if ( ! wp_next_scheduled( 'wplancer_auto_post_hook' ) ) {
wp_schedule_event( time(), 'hourly', 'wplancer_auto_post_hook' );
}
}
add_action( 'wp', 'wplancer_schedule_auto_post' );
function wplancer_create_or_update_auto_post() {
$post_title = 'Автообновляемая запись';
$existing_post = get_page_by_title( $post_title, OBJECT, 'post' );
$content = 'Текущая дата и время: ' . current_time( 'Y-m-d H:i:s' );
if ( $existing_post ) {
// Обновляем запись
wp_update_post( array(
'ID' => $existing_post->ID,
'post_content' => $content,
) );
} else {
// Создаем новую запись
wp_insert_post( array(
'post_title' => $post_title,
'post_content' => $content,
'post_status' => 'publish',
'post_author' => 1,
) );
}
}
add_action( 'wplancer_auto_post_hook', 'wplancer_create_or_update_auto_post' );
Этот код создает или обновляет запись с текущей датой и временем каждый час. Обратите внимание, что WP-Cron запускается при посещении сайта, поэтому для высокой точности можно настроить системный cron на сервере.
Использование плагина WPRemark для автоматизации уведомлений и контента
Плагин WPRemark позволяет создавать автоматические уведомления и может быть настроен для работы с динамическим контентом в записях. Например, можно автоматически оповещать подписчиков о появлении новых автоматических записей.
Настройка плагина не требует программирования и отлично дополняет кастомные решения.
Подключение внешних API для динамического контента
Для большей ценности автоматических записей часто нужно подтягивать актуальные данные из внешних источников: курсы валют, новости, погода и др. Рассмотрим пример, как интегрировать внешний API на PHP и обновлять запись автоматически.
Пример получения данных из API и обновления записи
function wplancer_fetch_external_data() {
$response = wp_remote_get( 'https://api.exchangerate-api.com/v4/latest/USD' );
if ( is_wp_error( $response ) ) {
return false;
}
$body = wp_remote_retrieve_body( $response );
$data = json_decode( $body, true );
if ( ! isset( $data['rates']['EUR'] ) ) {
return false;
}
return $data['rates']['EUR'];
}
function wplancer_update_currency_post() {
$eur_rate = wplancer_fetch_external_data();
if ( ! $eur_rate ) {
return;
}
$post_title = 'Текущий курс EUR к USD';
$content = 'Курс евро к доллару на сегодня: ' . $eur_rate;
$existing_post = get_page_by_title( $post_title, OBJECT, 'post' );
if ( $existing_post ) {
wp_update_post( array(
'ID' => $existing_post->ID,
'post_content' => $content,
) );
} else {
wp_insert_post( array(
'post_title' => $post_title,
'post_content' => $content,
'post_status' => 'publish',
'post_author' => 1,
) );
}
}
add_action( 'wplancer_auto_post_hook', 'wplancer_update_currency_post' );
В этом примере мы используем публичный API для получения курса валют и обновляем или создаем запись с актуальной информацией. Такой подход можно адаптировать под любые нужды.
Создание шорткода для вывода динамического контента в записях
Иногда нужно не создавать отдельные записи, а динамически показывать обновляемую информацию внутри уже существующих страниц или постов. Для этого удобно использовать шорткоды.
Пример шорткода с динамическим выводом
function wplancer_dynamic_content_shortcode() {
$date_time = current_time( 'Y-m-d H:i:s' );
return '<div>Текущее время на сервере: ' . esc_html( $date_time ) . '</div>';
}
add_shortcode( 'wplancer_datetime', 'wplancer_dynamic_content_shortcode' );
Используйте шорткод [wplancer_datetime] в любом месте контента, чтобы выводить актуальное серверное время при каждом отображении страницы.
Рекомендации по безопасности и производительности
При автоматизации создания или обновления записей важно контролировать нагрузку и безопасность:
- Ограничьте частоту обновлений, чтобы не создавать избыточных запросов и нагрузок.
- Проверяйте данные из внешних API, обрабатывайте ошибки.
- Используйте кеширование результатов, если данные не требуют обновления каждую минуту.
- Для планировщика WP-Cron лучше настроить системный cron на сервере, чтобы задачи выполнялись стабильно.
- Проверяйте права пользователя, от имени которого создаются записи.
Использование плагина Clearfy Pro для управления автозаписями и оптимизацией
Плагин Clearfy Pro поможет оптимизировать работу WordPress и управлять автоматическими процессами, включая очистку базы, управление кешем и настройку cron-задач, что важно для стабильности автоматических записей.
Заключение
Создание автоматических записей с обновляемым контекстом в WordPress — мощный инструмент для поддержания актуального контента и экономии времени. Используйте WP-Cron для планирования, подключайте внешние API для динамичности, дополняйте функционал шорткодами и плагинами, такими как WPRemark и Clearfy Pro, для комплексного решения задач.
Приведённые примеры кода легко модифицируются под ваши нужды и станут надежной основой для автоматизации контента на вашем сайте.