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

|

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

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

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

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

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

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

SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';

Если количество ревизий исчисляется тысячами, имеет смысл их почистить.

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

Самый простой способ — удалить все ревизии через SQL-запрос. Но будьте осторожны, перед удалением сделайте резервную копию базы данных.

DELETE FROM wp_posts WHERE post_type = 'revision';

Этот запрос удалит все ревизии без возможности восстановления. Если хотите удалить только ревизии старше определённой даты, используйте такой запрос, заменив DATE_SUB(NOW(), INTERVAL 30 DAY) на нужный период:

DELETE FROM wp_posts WHERE post_type = 'revision' AND post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);

После удаления рекомендуем оптимизировать таблицу:

OPTIMIZE TABLE wp_posts;

Удаление ревизий через плагин WP Business Cleaner

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

Преимущества использования плагина:

Ограничение количества сохраняемых ревизий — настройка wpbusiness_limit_revisions

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

define('WP_POST_REVISIONS', 5);

Эта строка ограничит количество ревизий для каждой записи до 5 последних. Если хотите полностью отключить ревизии, установите значение в false:

define('WP_POST_REVISIONS', false);

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

Создание пользовательской функции для удаления ревизий в WordPress

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

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

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

    $deleted = $wpdb->query($query);

    if ($deleted !== false) {
        // Оптимизируем таблицу после удаления
        $wpdb->query("OPTIMIZE TABLE {$wpdb->posts}");
    }

    return $deleted;
}

// Можно запускать функцию по Cron или вручную
// add_action('wp_business_cleanup_cron', 'wpbusiness_delete_old_revisions');

Эту функцию можно привязать к WordPress Cron для регулярной очистки.

Как настроить Cron для автоматической очистки ревизий

Чтобы автоматизировать процесс удаления ревизий, добавим задачу в планировщик WordPress:

if (!wp_next_scheduled('wp_business_cleanup_cron')) {
    wp_schedule_event(time(), 'daily', 'wp_business_cleanup_cron');
}

add_action('wp_business_cleanup_cron', 'wpbusiness_delete_old_revisions');

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

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

Удаление старых ревизий — важный шаг для поддержания производительности и здоровья базы данных WordPress. Рекомендуется:

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

Как сделать автоматический импорт данных в WordPress из Excel с примерами кода
30.01.2026
Как автоматизировать отзывы и оценки в WordPress для бизнес-сайта
14.01.2026
Как автоматизировать управление комментариями в WordPress: практическое руководство с примерами кода
25.01.2026
Как безопасно удалить неиспользуемые таблицы в базе данных WordPress
09.02.2026
Автоматическое отключение неиспользуемых плагинов в WordPress: практические решения
16.03.2026
×
Сделай свой сайт крутым!

Скидка -20% на премиум плагины WordPress

Выбрать плагин сейчас ⋙