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

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

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

В крупных и средних проектах количество черновиков может быстро расти, что замедляет работу админки и увеличивает размер базы данных. Автоматизация позволяет:

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

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

Автоматическое создание черновиков: практические сценарии

Иногда нужно автоматически создавать черновики — например, для планирования публикаций или резервного копирования контента. Рассмотрим пример функции для автоматического создания черновика с заданным заголовком и содержимым.

Пример кода для создания черновика

function wpguest_create_auto_draft($title = 'Автоматический черновик', $content = '') {
    $new_post = array(
        'post_title'    => $title,
        'post_content'  => $content,
        'post_status'   => 'draft',
        'post_author'   => get_current_user_id(),
        'post_type'     => 'post',
    );
    $post_id = wp_insert_post($new_post);
    return $post_id;
}

Эту функцию можно вызвать из хуков, например, при определённых условиях или по расписанию, чтобы создавать черновики автоматически.

Автоматизация с помощью WP-Cron

Чтобы создавать черновики регулярно, можно использовать встроенный в WordPress планировщик задач — WP-Cron. Вот пример, как добавить задачу на ежедневное создание черновика:

// Регистрация события при активации плагина или темы
if (!wp_next_scheduled('wpguest_daily_create_draft')) {
    wp_schedule_event(time(), 'daily', 'wpguest_daily_create_draft');
}

// Хук для создания черновика
add_action('wpguest_daily_create_draft', function() {
    wpguest_create_auto_draft('Ежедневный черновик от ' . date('Y-m-d'));
});

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

Автоматическое удаление черновиков: зачем и как

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

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

Ниже пример функции, которая удаляет все черновики старше заданного количества дней — например, 30:

function wpguest_delete_old_drafts($days_old = 30) {
    global $wpdb;
    $older_than = date('Y-m-d H:i:s', strtotime('-' . intval($days_old) . ' days'));
    $drafts = $wpdb->get_results($wpdb->prepare(
        "SELECT ID FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_date < %s",
        $older_than
    ));
    foreach ($drafts as $draft) {
        wp_delete_post($draft->ID, true); // true — удаляем без возможности восстановления
    }
}

Эту функцию также можно привязать к WP-Cron для регулярного запуска.

Настройка планировщика для удаления старых черновиков

// Планируем событие на еженедельное удаление
if (!wp_next_scheduled('wpguest_weekly_delete_old_drafts')) {
    wp_schedule_event(time(), 'weekly', 'wpguest_weekly_delete_old_drafts');
}

// Хук для запуска удаления
add_action('wpguest_weekly_delete_old_drafts', function() {
    wpguest_delete_old_drafts(30);
});

Так вы гарантируете, что черновики старше 30 дней будут удаляться автоматически каждую неделю.

Готовые плагины для управления черновиками

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

1. Auto Post Scheduler

Этот плагин автоматически публикует черновики, но его можно настроить и для удаления или переупорядочивания черновиков. Подробнее на Auto Post Scheduler на WPShop.

2. WP Bulk Delete

Позволяет массово удалять посты, включая черновики по разным условиям. Очень гибкий и простой в использовании. Подробнее: WP Bulk Delete на WPShop.

3. Clearfy Pro

Универсальный плагин для оптимизации WordPress, в числе функций есть управление и очистка черновиков и ревизий. Подробнее: Clearfy Pro на WPShop.

Советы по безопасности и производительности

При внедрении автоматического удаления черновиков важно:

  • Делать резервные копии базы перед автоматическими операциями.
  • Проверять логи на предмет ошибок выполнения скриптов.
  • Не удалять черновики, если они используются или связаны с важными задачами.
  • Использовать WP-Cron осторожно, учитывая, что он работает при посещении сайта, и лучше настроить системный cron для стабильности.

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

Как автоматизировать управление доступом к записям в WordPress по ролям и меткам
29.03.2026
Custom User Roles WordPress: как создать и управлять ролями пользователей
18.01.2026
Как автоматизировать удаление спам-комментариев в WordPress
10.02.2026
Автоматическое удаление старых товаров и заказов WooCommerce по дате
09.06.2026
Как удалить и заблокировать подозрительных пользователей в WordPress
24.05.2026