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

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

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

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

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

Как ограничить количество сохраняемых редакций с помощью плагина и кода

Использование плагина WP-Optimize для удаления редакций

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

Чтобы удалить старые редакции:

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

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

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

Чтобы предотвратить накопление большого количества ревизий, можно ограничить их число в настройках WordPress. Добавьте в wp-config.php перед строкой /* That's all, stop editing! Happy publishing. */ следующий код:

define('WPPOSTS_LIMIT_REVISIONS', 5);

Вместо 5 можно указать любое число — столько редакций будет сохраняться для каждой записи. Если поставить 0, редакции не будут сохраняться вовсе, но это не рекомендуется, т.к. вы потеряете возможность отката.

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

Удаление редакций через SQL-запросы: инструкция и пример

Иногда по соображениям безопасности или для более гибкого контроля разработчики предпочитают удалять редакции напрямую через SQL. Сделать это можно с помощью phpMyAdmin или любого другого инструмента для работы с базой данных.

В WordPress редакции постов имеют тип revision. Чтобы удалить все редакции из базы, выполните следующий SQL-запрос:

DELETE FROM wp_posts WHERE post_type = 'revision';
<

Замените wp_ на ваш префикс таблиц, если он отличается.

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

Также можно удалить редакции для определенного поста, например:

DELETE FROM wp_posts WHERE post_type = 'revision' AND post_parent = 123;

где 123 — ID нужного поста.

Создание функции для удаления редакций с префиксом wpupdate

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

function wpupdate_delete_all_revisions() {
    global $wpdb;
    $revisions_deleted = $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
    return $revisions_deleted;
}

Вызовите эту функцию там, где нужно, например, в админ-панели или по крону. Она вернет количество удаленных записей.

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

function wpupdate_delete_old_revisions($days = 30) {
    global $wpdb;
    $date_limit = date('Y-m-d H:i:s', strtotime("-{$days} days"));
    $revisions_deleted = $wpdb->query($wpdb->prepare(
        "DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_modified < %s",
        $date_limit
    ));
    return $revisions_deleted;
}

Влияние ревизий на производительность и советы по оптимизации

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

Рекомендуется:

  • Регулярно удалять старые ревизии, особенно на активных сайтах.
  • Ограничить количество сохраняемых редакций через wp-config.php.
  • Использовать плагины для автоматической оптимизации базы, например WP-Optimize.
  • Проводить резервное копирование перед очисткой.
  • Проверять размер таблицы wp_posts и выполнять оптимизацию базы данных (команда OPTIMIZE TABLE wp_posts;).

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Создание автоматических редиректов в WordPress без плагинов
17.01.2026
Как использовать хуки и фильтры в WordPress: подробное руководство для начинающих
13.11.2025
Как создать динамический виджет в WordPress с примерами кода
19.12.2025
Как использовать REST API в WordPress для создания собственных эндпоинтов
16.11.2025
Как удалить все удалённые записи из базы данных WordPress: практическое руководство
08.01.2026