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

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

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

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

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

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

Как определить, какие черновики удалять: выбор возраста и условий

Первый шаг — решить, какие именно черновики стоит удалять. Обычно удаляют черновики старше определённого периода, например, 30 или 60 дней, чтобы оставить возможность доработать свежие материалы.

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

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

Автоматическое удаление старых черновиков с помощью плагинов

Плагин WP-Sweep

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

Для удаления старых черновиков:

  • Установите и активируйте WP-Sweep.
  • Перейдите в «Инструменты» > «Sweep».
  • В разделе «Posts» найдите опцию удаления черновиков и запустите очистку.

Недостаток — нет тонкой настройки по возрасту, плагин удалит все черновики без разбора.

Плагин Auto Delete Posts

Auto Delete Posts позволяет настраивать автоматическое удаление записей по статусу и возрасту. Это удобно для регулярного удаления старых черновиков.

Настройка:

  • В разделе настроек плагина выберите тип записей «Черновики».
  • Задайте возраст в днях, например, 30.
  • Активируйте расписание удаления.

Плагин работает по cron и не требует ручного вмешательства.

Самописное решение: удаление старых черновиков через код

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

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

function wptalk_delete_old_drafts() {
    global $wpdb;
    $days = 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_date < %s",
        $date
    ));

    if (empty($drafts)) {
        return;
    }

    foreach ($drafts as $draft_id) {
        wp_delete_post($draft_id, true); // true - удалить без перемещения в корзину
    }
}

// Добавляем задачу в WP-Cron, если её ещё нет
if (!wp_next_scheduled('wptalk_delete_old_drafts_cron')) {
    wp_schedule_event(time(), 'daily', 'wptalk_delete_old_drafts_cron');
}

add_action('wptalk_delete_old_drafts_cron', 'wptalk_delete_old_drafts');

Этот код:

  • Определяет дату, старше которой черновики будут удалены.
  • Выбирает все черновики старше 30 дней.
  • Удаляет их полностью без перемещения в корзину.
  • Запускает функцию автоматически раз в сутки с помощью WP-Cron.

Вы можете изменить параметр $days под свои нужды, например, 60 или 90 дней.

Отладка и безопасность при автоматическом удалении черновиков

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

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

Также можно предусмотреть логирование удалённых записей для контроля. Для этого в функцию удаления можно добавить запись в лог-файл или в пользовательскую таблицу.

Безопасность важна: убедитесь, что функция запускается только по cron и не доступна извне через URL, чтобы избежать случайного или злонамеренного удаления данных.

Обзор полезных плагинов для оптимизации базы данных и управления контентом

Помимо удаления черновиков, стоит обратить внимание на плагины, которые помогают оптимизировать базу и управлять контентом:

  • Clearfy Pro — улучшает производительность, отключает ненужные функции и очищает базу.
  • Expert Review — помогает управлять отзывами и контентом на сайте.
  • WPRemark — расширяет возможности работы с комментариями и черновиками.

Эти инструменты можно найти на WPShop.ru и интегрировать в ваш сайт для комплексной оптимизации.

Автоматический импорт контента из Instagram в WordPress
16.03.2026
Как удалить пустые категории в WordPress
19.03.2026
Как удалить все комментарии в WordPress массово
27.11.2025
Как добавить автоматическую настройку изображений в WordPress для ускорения сайта
06.03.2026
Как отменить удаление пользователей WordPress без удаления их постов
22.02.2026