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

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

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

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

  • Увеличению размера базы данных;
  • Замедлению запросов к базе и работе админ-панели;
  • Трудностям в управлении контентом — сложно ориентироваться в списке записей;
  • Небольшому, но ненужному потреблению дискового пространства.

Решение — настроить автоматическую очистку старых черновиков и автосохранений, которые не обновлялись длительное время.

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

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

Как настроить:

  1. Установите и активируйте Clearfy Pro.
  2. Перейдите в раздел «Оптимизация» → «Очистка базы данных».
  3. Выберите опцию удаления черновиков и автосохранений старше нужного периода (например, 30 дней).
  4. Запланируйте регулярную очистку через Cron, чтобы процесс проходил автоматически.

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

Как написать собственную функцию для автоматического удаления старых черновиков и автосохранений

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

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

function wp5ru_delete_old_drafts_and_revisions() {
    global $wpdb;
    $days = 30; // Удалять записи старше 30 дней
    $date_threshold = date('Y-m-d H:i:s', strtotime("-{$days} days"));

    // Удаляем ревизии
    $revisions = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_modified < %s",
        $date_threshold
    ));

    foreach ($revisions as $revision_id) {
        wp_delete_post($revision_id, true);
    }

    // Удаляем черновики
    $drafts = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_modified < %s",
        $date_threshold
    ));

    foreach ($drafts as $draft_id) {
        wp_delete_post($draft_id, true);
    }
}

// Запускаем функцию через WP-Cron раз в сутки
function wp5ru_schedule_daily_cleanup() {
    if (!wp_next_scheduled('wp5ru_daily_cleanup_hook')) {
        wp_schedule_event(time(), 'daily', 'wp5ru_daily_cleanup_hook');
    }
}
add_action('wp', 'wp5ru_schedule_daily_cleanup');
add_action('wp5ru_daily_cleanup_hook', 'wp5ru_delete_old_drafts_and_revisions');

Этот код:

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

Внесите этот код в файл functions.php вашей темы или в отдельный плагин.

Дополнительные советы по оптимизации работы с черновиками и ревизиями

Ограничение количества ревизий в WordPress

По умолчанию WordPress может хранить множество ревизий одной записи, что быстро раздувает базу. Чтобы ограничить количество ревизий, можно добавить в wp-config.php строку:

define('WP_POST_REVISIONS', 5); // Хранить максимум 5 ревизий

Это уменьшит накопление ревизий в будущем.

Отключение автосохранения при необходимости

Если автосохранения вызывают проблемы или накапливаются слишком быстро, их можно отключить (но с осторожностью) добавлением в functions.php:

function wp5ru_disable_autosave() {
    wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'wp5ru_disable_autosave');

Однако автосохранения полезны для предотвращения потери данных, поэтому этот метод стоит применять только в исключительных случаях.

Использование плагинов для очистки базы данных

Кроме Clearfy Pro, популярны плагины WP-Optimize и WP Sweep. Они позволяют удалять ревизии, автосохранения, спам-комментарии и прочие ненужные данные в один клик или по расписанию.

Заключение по автоматическому удалению черновиков и автосохранений

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

WooCommerce: как автоматически изменять стоимость товара при изменении атрибутов
28.05.2026
Исправление дублирования артикулов (SKU) в WooCommerce
22.04.2026
Как установить автоматические редиректы в WordPress: практическое руководство
03.03.2026
Как отключить автоматические обновления в WordPress
06.03.2026
Как автоматизировать удаление старых черновиков и автосохранений в WordPress
14.01.2026