Как автоматизировать создание и удаление черновиков в WordPress

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

Зачем нужна автоматизация работы с черновиками в WordPress

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

Ручное управление черновиками становится неудобным при большом объёме контента или при работе с командой. Автоматизация позволяет:

  • Экономить время на рутину
  • Поддерживать чистоту в админке и базе данных
  • Уменьшать вероятность забытых или потерянных материалов

Как автоматически создавать черновики — пример кода

Для автоматического создания черновиков можно использовать функцию wpdirect_create_auto_draft, которая добавит новый пост со статусом "черновик". Например, такой код можно запускать по расписанию с помощью WP Cron:

function wpdirect_create_auto_draft() {
    $post_data = array(
        'post_title'   => 'Автоматический черновик ' . current_time('Y-m-d H:i:s'),
        'post_content' => '',
        'post_status'  => 'draft',
        'post_author'  => 1,
        'post_type'    => 'post',
    );

    $post_id = wp_insert_post($post_data);

    if (is_wp_error($post_id)) {
        error_log('Ошибка создания черновика: ' . $post_id->get_error_message());
    } else {
        error_log('Создан новый черновик с ID: ' . $post_id);
    }
}

// Регистрируем cron событие, если ещё не зарегистрировано
if (!wp_next_scheduled('wpdirect_auto_draft_event')) {
    wp_schedule_event(time(), 'hourly', 'wpdirect_auto_draft_event');
}

// Хук на наше событие
add_action('wpdirect_auto_draft_event', 'wpdirect_create_auto_draft');

Этот код создаёт новый черновик каждый час. Для запуска крона нужно, чтобы на сайте были посещения, либо настроен системный cron. Важно подставлять нужного автора и тип записи.

Автоматическое удаление черновиков старше определённого срока

Чтобы не накапливать множество устаревших черновиков, можно периодически удалять те, которые не были изменены и созданы давно. Для этого используем функцию wpdirect_delete_old_drafts:

function wpdirect_delete_old_drafts() {
    global $wpdb;

    $days = 30; // Удаляем черновики старше 30 дней
    $date = date('Y-m-d H:i:s', strtotime('-' . $days . ' days'));

    $drafts = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM $wpdb->posts WHERE post_status = 'draft' AND post_modified < %s",
        $date
    ));

    foreach ($drafts as $draft_id) {
        wp_delete_post($draft_id, true); // true — удаление без возможности восстановления
    }

    error_log('Удалено черновиков: ' . count($drafts));
}

// Регистрируем cron событие для удаления черновиков
if (!wp_next_scheduled('wpdirect_delete_old_drafts_event')) {
    wp_schedule_event(time(), 'daily', 'wpdirect_delete_old_drafts_event');
}

add_action('wpdirect_delete_old_drafts_event', 'wpdirect_delete_old_drafts');

Такой подход освобождает базу данных и админку от неактуальных записей.

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

Если не хотите писать код, можно воспользоваться плагинами, которые расширяют функциональность работы с черновиками:

  • Auto Post Scheduler — позволяет автоматически создавать и публиковать черновики по расписанию.
  • WP Bulk Delete — удобный инструмент для массового удаления записей по различным условиям, включая статус "черновик" и дату изменения.
  • Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wpdirect.ru&utm_medium=article&utm_campaign=kak-avtomatizirovat-sozdanie-i-udalenie-chernovikov-v-wordpress) — оптимизационный плагин, который среди прочего помогает управлять разными типами контента и может помочь с автоматизацией процессов.

Для интеграции с WP Cron и расширенной настройки задач можно использовать WP Control или Advanced Cron Manager.

Практические советы по автоматизации и безопасности

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

  • Всегда делайте резервную копию базы данных перед массовым удалением записей.
  • Тестируйте код на тестовом сайте, чтобы избежать удаления нужного контента.
  • Для более гибкого управления используйте пользовательские мета-поля, чтобы отмечать черновики, которые можно удалять или создавать.
  • Если сайт большой, рассмотрите использование WP CLI для управления черновиками через командную строку — это может быть быстрее и удобнее.

Заключение

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

Если хотите расширить функционал вашего сайта простыми и удобными инструментами, рекомендую обратить внимание на Clearfy Pro — мощный плагин для оптимизации и управления WordPress.

WooCommerce: автоматическое удаление отменённых заказов по расписанию с примером кода
15.06.2026
Как автоматически менять статус заказа WooCommerce по условиям: решение проблемы с неработающим обновлением
29.04.2026
WooCommerce: автоматическое удаление отменённых заказов по расписанию
27.05.2026
Как избежать проблем с кешированием в WordPress
10.02.2026
Как установить автоматический ответ на отзывы в WordPress
22.01.2026