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

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

Почему важно удалять старые черновики в WordPress

Черновики — это записи, которые не были опубликованы. Они сохраняются в базе данных и остаются там до тех пор, пока их не удалят вручную или автоматически. Если не контролировать количество черновиков, со временем их может накопиться очень много. Это приводит к следующим проблемам:

  • Увеличение размера базы данных. Большое количество черновиков занимает лишнее место и замедляет операции с базой.
  • Замедление работы административной панели. Особенно при открытии раздела «Записи» или «Все записи» с большим числом черновиков.
  • Потеря контроля над контентом. Старые и ненужные записи могут мешать ориентироваться авторам и редакторам.

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

Настройка автоматического удаления черновиков с помощью WPCheckerClearfy Pro

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

Для настройки автоматического удаления выполните следующие шаги:

  1. Установите и активируйте плагин Clearfy Pro.
  2. Перейдите в раздел Clearfy Pro в административной панели.
  3. В настройках базы данных найдите опцию «Автоматическая очистка черновиков».
  4. Установите периодичность, например, удалять черновики старше 30 дней.
  5. Сохраните настройки.

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

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

Если вы предпочитаете более гибкий и легковесный способ без установки плагинов, можно добавить в файл functions.php вашей темы или создать собственный мини-плагин следующий код. Он удалит все черновики старше 30 дней по крону WordPress.

function wpchecker_delete_old_drafts() {
    global $wpdb;
    $date_threshold = date('Y-m-d H:i:s', strtotime('-30 days'));

    $drafts = $wpdb->get_results(
        $wpdb->prepare(
            "SELECT ID FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_date < %s",
            $date_threshold
        )
    );

    if (!empty($drafts)) {
        foreach ($drafts as $draft) {
            wp_delete_post($draft->ID, true); // true для безвозвратного удаления
        }
    }
}

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

// Хук для выполнения функции
add_action('wpchecker_daily_delete_old_drafts', 'wpchecker_delete_old_drafts');

Данный код создает ежедневное задание, которое ищет все черновики старше 30 дней и удаляет их безвозвратно. Вы можете изменить период, заменив '-30 days' на нужное значение, например, '-60 days'.

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

Если потребуется отключить эту функцию, просто удалите или закомментируйте вызовы wp_schedule_event и add_action в коде, а также удалите запланированное событие вручную через WP-CLI или плагин для управления кроном.

Использование WP-CLI для удаления старых черновиков

Альтернативный вариант — использовать WP-CLI, инструмент командной строки для управления WordPress. Это особенно удобно на серверах с доступом к SSH.

Для удаления черновиков старше 30 дней выполните следующую команду:

wp post delete $(wp post list --post_type='post' --post_status='draft' --field=ID --date_query_column=post_date --date_query_after='30 days ago')

Можно настроить cron-задачу на сервере, которая будет запускать эту команду ежедневно или с нужной вам периодичностью. Это позволит автоматизировать очистку без добавления кода в сайт.

Рекомендации по безопасному удалению черновиков

Перед тем как настроить автоматическое удаление, учтите следующие моменты:

  • Резервное копирование. Всегда делайте резервные копии базы данных перед массовым удалением данных, чтобы иметь возможность восстановить информацию в случае ошибки.
  • Проверка нужных записей. Убедитесь, что вы не удаляете черновики, над которыми ведется активная работа.
  • Логирование действий. Желательно вести лог удалений, чтобы отслеживать, какие записи были удалены.

Эти меры помогут избежать потери важной информации и сохранить стабильность сайта.

Заключение

Автоматическое удаление старых черновиков — простой, но эффективный способ поддерживать WordPress-сайт в порядке и улучшать производительность. Выбор метода зависит от ваших предпочтений и уровня доступа к серверу: можно использовать готовые решения, такие как Clearfy Pro, написать собственный код или применять WP-CLI. Главное — не забывать регулярно очищать базу данных и делать резервные копии.

Как создать и использовать кастомные типы записей в WordPress
14.01.2026
Как отключить XML-RPC в WordPress для повышения безопасности
15.03.2026
Как удалить пустые термины таксономий в WordPress через PHP
06.04.2026
Как настроить безопасность REST API в WordPress: практические решения и примеры кода
03.01.2026
Как использовать WPChecker для поиска и устранения проблем производительности WordPress
14.04.2026