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

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

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

Каждый раз при сохранении записи WordPress создаёт её ревизию. При активном ведении блога или сайта с частыми обновлениями количество ревизий может достигать сотен или даже тысяч. Это негативно влияет на производительность базы данных:

  • Увеличивается размер таблицы wp_posts.
  • Замедляется работа запросов к базе.
  • Резервное копирование занимает больше времени и места.

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

Ручное удаление ревизий через SQL-запрос

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

DELETE FROM wp_posts WHERE post_type = 'revision';

Этот запрос удалит все ревизии, но будьте осторожны — лучше сделать резервную копию базы перед выполнением.

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

Чтобы регулярно очищать ревизии, можно написать собственную функцию и запланировать её выполнение через WP-Cron. Пример функции для удаления ревизий:

function wpone_delete_old_revisions() {
    global $wpdb;
    $days = 30; // удалять ревизии старше 30 дней
    $wpdb->query( $wpdb->prepare(
        "DELETE FROM $wpdb->posts WHERE post_type = 'revision' AND post_date < NOW() - INTERVAL %d DAY",
        $days
    ));
}

// Создаём событие при активации темы или плагина
if ( ! wp_next_scheduled( 'wpone_daily_revision_cleanup' ) ) {
    wp_schedule_event( time(), 'daily', 'wpone_daily_revision_cleanup' );
}

// Подписываем функцию на событие
add_action( 'wpone_daily_revision_cleanup', 'wpone_delete_old_revisions' );

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

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

Если не хочется писать код, существуют готовые решения:

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

Для примера рассмотрим настройку Clearfy Pro. После установки и активации перейдите в раздел «Оптимизация» и активируйте опцию удаления ревизий. Можно настроить автоматическую очистку по расписанию.

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

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

define('WP_POST_REVISIONS', 5); // хранить не более 5 ревизий на запись

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

Создание функции для ограничения ревизий с фильтром WPONE

Если хотите более гибко контролировать ревизии, можно написать функцию с фильтром:

function wpone_limit_post_revisions( $num, $post ) {
    // Ограничиваем ревизии для страниц 3 штуками, для остальных — 5
    if ( $post->post_type === 'page' ) {
        return 3;
    }
    return 5;
}
add_filter( 'wp_revisions_to_keep', 'wpone_limit_post_revisions', 10, 2 );

Такой подход позволяет задать разное количество ревизий в зависимости от типа записи.

Выводы и рекомендации

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

Рекомендуется комбинировать автоматизацию через WP-Cron с использованием плагинов, например, Clearfy Pro, для удобства и надежности.

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

Как использовать PHPMailer в WordPress для отправки писем с кастомными настройками
05.03.2026
WooCommerce: как эффективно очистить базу от старых корзин и заказов
20.05.2026
Как удалить дубли продуктов в WooCommerce через код
07.05.2026
WooCommerce: автоматическое изменение стоимости товара после оплаты с помощью хука
31.05.2026
Как вывести оценки пользователей в WordPress с помощью плагинов и кода
25.02.2026