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

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

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

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

Удаление ревизий с помощью плагинов — лучшие решения

Если вы предпочитаете решения без кода, можно воспользоваться проверенными плагинами из репозитория WordPress:

  • WP-Optimize — комплексный плагин для очистки базы данных и оптимизации сайта. Позволяет удалять ревизии, спам-комментарии, черновики и многое другое.
  • Better Delete Revision — специализированный плагин, который сканирует и удаляет все ревизии из базы данных, показывая статистику освобожденного места.
  • Optimize Database after Deleting Revisions — автоматизирует процесс удаления ревизий и оптимизации таблиц, можно настроить расписание.

Использование плагина — быстрый и безопасный способ, особенно если вы не хотите работать с базой данных напрямую.

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

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

DELETE FROM wp_posts WHERE post_type = 'revision';

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

Также можно узнать, сколько ревизий занимает места, выполнив:

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

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

OPTIMIZE TABLE wp_posts;

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

Автоматическое ограничение количества ревизий с помощью кода

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

define('WP_POST_REVISIONS', 3);

Это ограничит количество ревизий для каждого поста тремя последними версиями. Можно указать любое число или поставить false, чтобы отключить ревизии полностью (не рекомендуется).

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

function wp_gpt_limit_revisions() {
    return 3; // Максимум 3 ревизии
}
add_filter('wp_revisions_to_keep', 'wp_gpt_limit_revisions', 10, 2);

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

Удаление ревизий программно через WP_Query и wp_delete_post_revision()

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

function wp_gpt_delete_all_revisions() {
    $revisions = new WP_Query([
        'post_type'      => 'revision',
        'posts_per_page' => -1,
        'fields'         => 'ids',
    ]);

    foreach ($revisions->posts as $revision_id) {
        wp_delete_post_revision($revision_id);
    }
}

// Используйте с осторожностью, например, привяжите к хуку или вызовите вручную
// wp_gpt_delete_all_revisions();

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

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

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

  • Ограничивайте количество ревизий с помощью WP_POST_REVISIONS или фильтра wp_revisions_to_keep.
  • Регулярно очищайте базу данных с помощью плагинов или собственных скриптов.
  • Используйте автоматическую оптимизацию таблиц базы данных, например, с помощью WP-Optimize.
  • Избегайте чрезмерного использования автосохранения, если оно не нужно.

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

Заключение

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

Как создать автоматический генератор UTM-меток для WordPress
20.02.2026
Как создать автоматический генератор шорткодов в WordPress с поддержкой параметров
19.03.2026
Как использовать WPGPT для автоматизации создания контекста в блоках Gutenberg
26.03.2026
Как создать автоматический генератор изображений для постов WordPress с помощью GPT
17.04.2026
Как создать автоматический подбор тегов в WordPress с помощью GPT
15.01.2026