Как удалить старые редакции постов в WordPress

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

Почему важно удалять старые редакции в WordPress

Каждая ревизия – это отдельная запись в таблице wp_posts с типом revision. На активных сайтах с большим количеством контента и частыми правками количество таких записей может достигать десятков или сотен тысяч. Это приводит к:

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

Оптимизация базы данных за счёт удаления ненужных редакций – простой способ увеличить производительность сайта без потери важных данных.

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

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

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

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

Удаление редакций с помощью плагинов

Плагин WP-Optimize

WP-Optimize – популярный плагин для очистки и оптимизации базы данных. Он удаляет ревизии, спам-комментарии, временные данные и многое другое.

Чтобы удалить редакции с помощью WP-Optimize:

  1. Установите и активируйте плагин с официального репозитория.
  2. Перейдите в раздел «WP-Optimize» → «База данных».
  3. Отметьте пункт «Удалить все ревизии постов».
  4. Нажмите «Выполнить оптимизацию».

Плагин безопасно удалит все старые редакции, освободив место в базе.

Плагин Clearfy Pro

Если вы используете Clearfy Pro от WPSHOP, то в нем тоже есть функция для удаления ревизий. Она позволяет настроить удаление по возрасту и количеству сохранённых версий.

Удаление редакций вручную через SQL-запрос

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

DELETE FROM wp_posts WHERE post_type = 'revision';

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

Удаление старых редакций с помощью кода в functions.php

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

function wptemy_delete_old_revisions() {
    global $wpdb;
    $days = 30; // Удалять редакции старше 30 дней
    $sql = $wpdb->prepare(
        "DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_modified < %s",
        date('Y-m-d H:i:s', strtotime('-' . $days . ' days'))
    );
    $deleted = $wpdb->query($sql);
    return $deleted;
}

// Запускаем очистку при активации темы или плагина
add_action('after_switch_theme', 'wptemy_delete_old_revisions');

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

Добавление WP-Cron задачи для очистки ревизий

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

function wptemy_schedule_revision_cleanup() {
    if (!wp_next_scheduled('wptemy_revision_cleanup_hook')) {
        wp_schedule_event(time(), 'daily', 'wptemy_revision_cleanup_hook');
    }
}
add_action('wp', 'wptemy_schedule_revision_cleanup');

add_action('wptemy_revision_cleanup_hook', 'wptemy_delete_old_revisions');
<

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

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

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

define('WP_POST_REVISIONS', 5); // Максимум 5 ревизий на пост

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

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

Удаление старых редакций – необходимая практика для поддержания производительности и чистоты базы данных WordPress. Используйте плагины WP-Optimize или Clearfy Pro для удобной очистки, либо автоматизируйте процесс с помощью собственного кода и WP-Cron. Не забывайте ограничивать количество ревизий, чтобы избежать больших объёмов лишних данных в будущем.

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

Как использовать хуки для отрывных настроек в WordPress
05.01.2026
Как избежать конфликтов между плагинами WordPress с примерами кода
25.01.2026
Как удалить пустые категории в WordPress
02.03.2026
Как удалить автосохранения (autosaves) в WordPress: практическое руководство
18.02.2026
Как отключить AJAX в WooCommerce без плагинов
08.01.2026