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

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

Что такое ревизии в WordPress и почему их нужно контролировать

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

Контроль и удаление ненужных ревизий помогает:

  • Снизить нагрузку на базу данных;
  • Ускорить работу административной панели;
  • Оптимизировать резервное копирование и восстановление сайта.

Давайте рассмотрим несколько способов решения этой задачи.

Ограничение количества ревизий через wp-config.php

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

define('WP_POST_REVISIONS', 5);

Если хотите полностью отключить ревизии, установите значение в false:

define('WP_POST_REVISIONS', false);

Однако это не удалит уже накопленные ревизии. Для их удаления нужно использовать другие методы.

Удаление старых ревизий с помощью SQL-запроса

Для быстрого удаления всех ревизий, кроме самых актуальных, можно воспользоваться SQL-запросом через phpMyAdmin или другой инструмент управления базой данных:

DELETE FROM wp_posts WHERE post_type = 'revision';

Этот запрос удалит все ревизии без разбора. Но если вам нужна более тонкая очистка, например, удалять ревизии старше определённого времени, лучше использовать PHP-скрипт.

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

Добавьте следующий код в файл functions.php вашей темы или создайте собственный небольшой плагин для управления ревизиями. Этот код удалит ревизии старше 30 дней и будет запускаться по крону раз в сутки.

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

    $deleted = $wpdb->query(
        $wpdb->prepare(
            "DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_modified < %s",
            $date_limit
        )
    );
    return $deleted;
}

// Планируем событие, если оно не запланировано
if (!wp_next_scheduled('wp24_daily_revision_cleanup')) {
    wp_schedule_event(time(), 'daily', 'wp24_daily_revision_cleanup');
}

// Подписываемся на хук
add_action('wp24_daily_revision_cleanup', 'wp24_delete_old_revisions');

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

Использование плагинов для управления ревизиями

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

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

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

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

После удаления ревизий рекомендуется оптимизировать таблицы базы данных, чтобы уменьшить её размер и ускорить работу. Это можно сделать SQL-запросом:

OPTIMIZE TABLE wp_posts;

Или с помощью плагинов, таких как WP-Optimize или упомянутый выше Advanced Database Cleaner.

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

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

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

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

Как использовать handy код для удаления старых метаданных в WordPress
09.01.2026
Как добавить автоматическое удаление старых transient-данных в WordPress
22.01.2026
Как отладить и решить проблемы с переадресацией в WordPress
06.11.2025
Как добавить фильтрацию по подкатегориям в WooCommerce
25.05.2026
Как избежать ошибок WooCommerce при массовом изменении цен продуктов
21.05.2026