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

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

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

Черновики — это полезная функция для сохранения промежуточных версий статей, но со временем их количество может превысить разумные пределы. Вот основные причины для удаления старых черновиков:

  • Оптимизация базы данных: большое количество записей в статусе draft увеличивает размер таблиц wp_posts и wp_postmeta, что замедляет запросы.
  • Упрощение админки: меньше мусора в списке постов — легче ориентироваться и управлять контентом.
  • Повышение безопасности: иногда черновики содержат устаревшие данные или конфиденциальную информацию, которую не стоит хранить без надобности.

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

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

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

WP-Optimize

Плагин WP-Optimize позволяет очищать базу данных, включая удаление старых черновиков и ревизий. В настройках можно указать максимальный возраст черновиков для удаления.

Advanced Database Cleaner

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

WP Sweep

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

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

Если вы предпочитаете не использовать плагины, можно добавить простой код в файл functions.php вашей темы или создать мини-плагин для автоматизации удаления черновиков. Ниже пример такого решения.

Пример функции для удаления черновиков старше 30 дней

function wpstuff_delete_old_drafts() {
    global $wpdb;
    $days = 30; // возраст черновиков в днях
    $date_threshold = date('Y-m-d H:i:s', strtotime('-'. $days .' days'));

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

    if (!empty($drafts_to_delete)) {
        foreach ($drafts_to_delete as $post_id) {
            wptrash_post($post_id); // перемещаем в корзину
        }
    }
}
// Запускаем функцию ежедневно
if (!wp_next_scheduled('wpstuff_daily_delete_old_drafts_hook')) {
    wp_schedule_event(time(), 'daily', 'wpstuff_daily_delete_old_drafts_hook');
}
add_action('wpstuff_daily_delete_old_drafts_hook', 'wpstuff_delete_old_drafts');

Этот код создает ежедневное задание, которое автоматически перемещает в корзину все черновики старше 30 дней. Вы можете изменить параметр $days под ваши нужды.

Объяснение работы кода

Мы используем глобальный объект $wpdb для выборки ID черновиков с датой создания более 30 дней назад. Затем для каждого из них вызываем функцию wptrash_post, которая безопасно перемещает запись в корзину, не удаляя навсегда сразу.

Расширение функционала: удаление черновиков без корзины и уведомления

Если нужно сразу удалять черновики без помещения в корзину, можно заменить строку удаления на:

wp_delete_post($post_id, true); // true - удаление безвозвратно

Однако будьте осторожны с таким подходом — восстановить данные будет невозможно.

Как интегрировать с плагином Clearfy Pro для оптимизации

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

Clearfy Pro умеет:

  • Автоматически очищать устаревшие записи и ревизии по расписанию.
  • Оптимизировать таблицы базы данных без ручного запуска.
  • Настраивать исключения для важных данных.

Рекомендации по применению и безопасность

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

  • Сделать резервную копию базы данных.
  • Проверить работу на тестовом сайте.
  • Настроить уведомления или логи для мониторинга очистки.

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

Выводы и лучшие практики

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

Если вы хотите быстро и безопасно очистить базу, попробуйте WP-Optimize или Clearfy Pro. Для более гибкой и тонкой настройки подойдёт собственный код с планировщиком задач.

Как удалить кэш плагинов в WordPress при проблемном очищении
17.12.2025
Как создать собственный плагин оптимизации базы данных WordPress
31.01.2026
Как отключить AJAX в WooCommerce без потери функциональности
11.02.2026
Как создать автоматический мультиязычный сайт на WordPress без использования полиглотов
24.01.2026
Как использовать REST API в WordPress для создания страницы настроек
22.11.2025