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

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

Что такое ревизии в WordPress и зачем их удалять

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

Проблемы от большого числа ревизий:

  • Увеличение размера базы данных.
  • Замедление выполнения запросов к базе.
  • Усложнение резервного копирования и восстановления.

Поэтому регулярное удаление старых ревизий — важный этап оптимизации сайта.

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

Для ограничения количества ревизий можно задать константу WP_REVISIONS в файле wp-config.php. Например, чтобы хранить не более 5 ревизий:

define('WP_REVISIONS', 5);

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

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

Мы создадим функцию wprus_delete_old_revisions, которая будет удалять ревизии старше определённого времени, и настроим её на регулярное выполнение через WP-Cron.

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

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

    // Получаем ID ревизий, созданных ранее установленной даты
    $revisions = $wpdb->get_col($wpdb->prepare(
        "SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_date < %s",
        $date_threshold
    ));

    if (!empty($revisions)) {
        foreach ($revisions as $revision_id) {
            wp_delete_post($revision_id, true); // true — принудительное удаление
        }
    }
}

// Регистрируем событие WP-Cron, если оно ещё не зарегистрировано
if (!wp_next_scheduled('wprus_delete_old_revisions_hook')) {
    wp_schedule_event(time(), 'daily', 'wprus_delete_old_revisions_hook');
}

// Хук для запуска функции
add_action('wprus_delete_old_revisions_hook', 'wprus_delete_old_revisions');

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

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

Если вы хотите удалить все ревизии сразу, можно использовать популярные плагины:

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

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

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

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

SQL-запрос для оптимизации таблиц

OPTIMIZE TABLE wp_posts;

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

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

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

  • Ограничить количество ревизий через WP_REVISIONS в wp-config.php.
  • Регулярно создавать резервные копии сайта перед очисткой базы данных.
  • Использовать плагин Clearfy для комплексной оптимизации и управления различными аспектами WordPress.
  • Проверять влияние удаления ревизий на рабочие процессы, если вы работаете в команде и нуждаетесь в истории изменений.
Как удалить неиспользуемые теги в WordPress: эффективные методы и примеры
18.12.2025
Как удалить битые ссылки в WordPress: автоматические и ручные методы
05.04.2026
Как создать кастомный метабокс в WordPress: практическое руководство
04.11.2025
Как отключить REST API в WordPress без плагинов: практическое руководство
21.01.2026
Как удалить кэш в WordPress: практические способы и примеры
09.11.2025
×
Review
Добавь ценность своему сайту WordPress!
-15%

на Expert Review плагин WordPress

Порадуй свой сайт ⋙