В процессе ведения сайта на WordPress часто возникает необходимость в регулярном создании черновиков для планирования контента, а также в удалении устаревших или ненужных черновиков, чтобы поддерживать порядок в админке и оптимизировать базу данных. В этой статье мы подробно разберём, как автоматизировать эти задачи с помощью кода и плагинов, а также рассмотрим полезные кейсы, которые пригодятся разработчикам и администраторам сайтов.
Зачем нужна автоматизация создания и удаления черновиков в WordPress
Автоматизация помогает экономить время и поддерживать порядок. Например, если вы ведёте новостной блог или сайт с регулярным обновлением статей, можно автоматически создавать шаблоны черновиков на определённые даты или темы. Аналогично, удаление старых черновиков позволяет не засорять базу данных и интерфейс, что положительно сказывается на производительности.
Ручное управление большим количеством неопубликованных записей может стать рутинной и ошибочной задачей. Автоматизация с помощью PHP-кода и планировщика задач (WP-Cron) позволяет сделать это аккуратно и прозрачно.
Автоматическое создание черновиков с WPStuff_create_draft_post
Для начала создадим функцию, которая будет создавать черновик с заданным заголовком и содержимым. Для примера реализуем создание ежедневного напоминания о необходимости заполнить контент.
function wpstuff_create_draft_post($title, $content = '') {
$new_post = array(
'post_title' => $title,
'post_content' => $content,
'post_status' => 'draft',
'post_author' => 1,
'post_type' => 'post',
);
$post_id = wp_insert_post($new_post);
return $post_id;
}Теперь добавим планировщик задач, который будет запускать эту функцию ежедневно. Для этого используем хук wp для регистрации события, а также функцию для его выполнения:
function wpstuff_schedule_daily_draft_creation() {
if (!wp_next_scheduled('wpstuff_create_daily_draft')) {
wp_schedule_event(time(), 'daily', 'wpstuff_create_daily_draft');
}
}
add_action('wp', 'wpstuff_schedule_daily_draft_creation');
function wpstuff_create_daily_draft_callback() {
$date = date('Y-m-d');
$title = 'Ежедневный черновик на ' . $date;
$content = 'Автоматически созданный черновик для заполнения контента на ' . $date;
wpstuff_create_draft_post($title, $content);
}
add_action('wpstuff_create_daily_draft', 'wpstuff_create_daily_draft_callback');Таким образом, каждый день будет создаваться новый черновик с уникальным названием.
Автоматическое удаление старых черновиков с WPStuff_delete_old_drafts
Иногда появляется необходимость удалять черновики, которым больше определённого количества дней. Это помогает поддерживать базу данных в чистоте и уменьшает нагрузку на сайт.
Реализуем функцию, которая удалит все черновики старше 30 дней.
function wpstuff_delete_old_drafts($days = 30) {
global $wpdb;
$date_threshold = date('Y-m-d H:i:s', strtotime('-' . intval($days) . ' days'));
$drafts = $wpdb->get_results($wpdb->prepare(
"SELECT ID FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_date < %s",
$date_threshold
));
foreach ($drafts as $draft) {
wp_delete_post($draft->ID, true);
}
}
function wpstuff_schedule_old_drafts_deletion() {
if (!wp_next_scheduled('wpstuff_delete_old_drafts_hook')) {
wp_schedule_event(time(), 'daily', 'wpstuff_delete_old_drafts_hook');
}
}
add_action('wp', 'wpstuff_schedule_old_drafts_deletion');
add_action('wpstuff_delete_old_drafts_hook', function() {
wpstuff_delete_old_drafts(30);
});Эта функция запускается ежедневно и удаляет все черновики старше 30 дней. При необходимости можно изменить количество дней, передавая параметр в функцию.
Использование плагина Clearfy Pro для управления черновиками
Если вы предпочитаете готовые решения, обратите внимание на плагин Clearfy Pro. Он предоставляет удобные инструменты для управления черновиками, автоматического удаления старых записей и оптимизации базы данных.
Clearfy Pro позволяет настроить автоматическую очистку черновиков по дате, а также добавить уведомления для авторов о необходимости завершить публикацию. Интеграция с WP-Cron позволяет запускать эти задачи без дополнительного вмешательства.
Как настроить автоматическое удаление черновиков в Clearfy Pro
После установки и активации плагина перейдите в раздел оптимизации и найдите настройку «Удаление старых черновиков». Выберите период хранения (например, 30 дней) и активируйте функцию. Плагин будет регулярно очищать базу данных от устаревших черновиков.
Преимущества использования плагина
- Простота настройки без написания кода;
- Расширенные возможности оптимизации сайта;
- Поддержка и обновления от разработчиков;
- Интеграция с другими инструментами Clearfy Pro.
Советы по безопасности и производительности при автоматизации черновиков
При использовании кастомных функций и WP-Cron важно следить за безопасностью и производительностью. Вот несколько рекомендаций:
- Проверяйте права доступа. Функции создания и удаления записей должны выполняться с учётом ролей пользователей и безопасности.
- Избегайте дублирования. При создании ежедневных черновиков проверяйте, что такой черновик уже не существует, чтобы не создавать дубликаты.
- Оптимизируйте запросы. Используйте прямые запросы к базе данных с осторожностью и с подготовленными выражениями.
- Контролируйте нагрузку. Не запускайте тяжелые задачи в пиковые часы, старайтесь распределять нагрузку равномерно.
Пример проверки на существование черновика перед созданием
function wpstuff_create_daily_draft_callback() {
$date = date('Y-m-d');
$title = 'Ежедневный черновик на ' . $date;
$existing = get_page_by_title($title, OBJECT, 'post');
if (!$existing) {
$content = 'Автоматически созданный черновик для заполнения контента на ' . $date;
wpstuff_create_draft_post($title, $content);
}
}Этот простой прием поможет избежать дублирования черновиков.
Заключение
Автоматизация работы с черновиками в WordPress — это отличный способ упростить рутинные задачи контент-менеджмента и поддерживать чистоту базы данных. Используя функции WPStuff_create_draft_post и WPStuff_delete_old_drafts, а также планировщик WP-Cron, можно настроить надежный механизм создания и удаления черновиков. В качестве альтернативы и дополнения отлично подходит плагин Clearfy Pro, который позволит упростить процесс и добавить дополнительные возможности оптимизации.