Удаление старых ревизий постов WordPress без плагинов: оптимизация базы данных

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

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

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

Большое количество ревизий влияет на производительность базы данных и увеличивает её размер. Это особенно заметно на сайтах с большим количеством контента или активным редактированием. Удаление старых ревизий помогает:

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

Как удалить старые ревизии через SQL-запросы в базе данных

Самый простой и эффективный способ удалить старые ревизии — выполнить SQL-запрос напрямую через phpMyAdmin или другой инструмент управления базой данных.

Ревизии хранятся в таблице wp_posts с типом revision. Чтобы удалить все ревизии, выполните следующий запрос:

DELETE FROM wp_posts WHERE post_type = 'revision';

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

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

Ограничение количества ревизий для новых записей через functions.php

Чтобы не накапливать ревизии в будущем, можно ограничить их количество. Добавьте в файл functions.php вашей темы следующий код:

function wpdesk_limit_post_revisions() {
    return 3; // Оставлять только 3 последние ревизии
}
add_filter('wp_revisions_to_keep', 'wpdesk_limit_post_revisions', 10, 2);

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

Пример функции для удаления ревизий программно через WP-CLI или в плагине

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

function wpdesk_delete_old_revisions($limit = 100) {
    global $wpdb;
    // Выбираем ID ревизий
    $revisions = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision' LIMIT %d", $limit);
    if (!empty($revisions)) {
        foreach ($revisions as $revision_id) {
            wp_delete_post($revision_id, true); // Удаляем полностью
        }
    }
    return count($revisions);
}

Вызовите функцию несколько раз, пока она возвращает ненулевое число, чтобы полностью очистить ревизии.

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

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

Резюме и рекомендации

Удаление старых ревизий — обязательная мера для сайтов с большим количеством контента и частыми правками. Это помогает держать базу данных в порядке и повышает производительность. Для удаления ревизий можно использовать SQL-запросы напрямую, написать собственный код в functions.php или использовать специализированные плагины, например, Clearfy Pro.

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

WooCommerce: автоматическое изменение атрибутов вариаций при импорте товаров
14.06.2026
Как полностью удалить плагин в WordPress
05.11.2025
Использование хука WooCommerce 'woocommerce_order_status_changed' для автоматизации
26.04.2026
Как создать автоматический импорт отзывов в WordPress с подтверждением
10.03.2026
Отладка AJAX запросов в админ-панели WordPress: практическое руководство
06.12.2025

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