WordPress автоматически сохраняет каждую версию поста или страницы при их редактировании. Это полезно для восстановления предыдущих вариантов контента, однако со временем количество ревизий может значительно вырасти, что приводит к раздуванию базы данных и замедлению работы сайта. В этой статье разберём, как эффективно удалить старые версии постов и оптимизировать базу данных без потери важных данных.
Что такое ревизии (версии) постов в WordPress и зачем их удалять
Ревизии — это автоматические сохранённые версии записи, которые WordPress создаёт при каждом обновлении поста. Эти версии помогают откатиться к предыдущему состоянию, если что-то пошло не так. Но если на сайте много статей и частых обновлений, количество ревизий растёт, и база данных становится тяжёлой.
Удаление старых ревизий позволяет:
- Снизить размер базы данных, что ускоряет её работу и резервное копирование.
- Уменьшить нагрузку на сервер при запросах к таблице
wp_posts. - Повысить общую производительность сайта.
Удаление старых версий постов через плагин
Использование плагина WP-Optimize
Один из самых популярных и надёжных плагинов для очистки базы данных — WP-Optimize. Он позволяет удалять ревизии, спам-комментарии, временные данные и оптимизировать таблицы базы данных в один клик.
После установки и активации:
- Перейдите в раздел WP-Optimize > Database.
- Отметьте пункт «Удалить все ревизии постов».
- Нажмите кнопку «Run all selected optimizations».
Плагин автоматически удалит все старые версии, освободив место в базе.
Плагин Revision Control для ограничения количества ревизий
Чтобы не допускать накопления слишком большого числа ревизий, можно ограничить их количество с помощью плагина Revision Control. Он позволяет задать максимальное число ревизий для каждой записи, например, сохранять не более 3 версий.
Это предотвращает излишнее разрастание базы в будущем.
Удаление старых ревизий через SQL-запрос
Если вы знакомы с работой с базой данных напрямую, можно удалить ревизии с помощью SQL-запроса. Для этого используйте phpMyAdmin или другой инструмент управления базой.
Пример запроса для удаления всех ревизий:
DELETE FROM wp_posts WHERE post_type = 'revision';
Обратите внимание, что префикс wp_ может отличаться в вашей базе. Проверьте его перед выполнением.
Этот способ быстрый и эффективный, но требует осторожности — сделайте резервную копию базы перед удалением.
Автоматическое ограничение количества ревизий через functions.php
Чтобы ограничить количество ревизий на уровне кода, добавьте следующий фильтр в файл functions.php вашей темы:
function wpload_set_post_revisions_limit() {
return 3; // Максимум 3 ревизии на запись
}
add_filter('wp_revisions_to_keep', 'wpload_set_post_revisions_limit', 10, 2);
Этот код заставит WordPress хранить не более трёх ревизий для каждого поста, автоматически удаляя старые при сохранении новых.
Оптимизация базы данных после удаления ревизий
После удаления ревизий полезно выполнить оптимизацию таблиц базы данных, чтобы освободить место и улучшить производительность. В phpMyAdmin выберите таблицу wp_posts и нажмите "Оптимизировать".
Если вы используете плагин WP-Optimize, он сделает это автоматически при очистке.
Заключение по удалению старых версий постов
Регулярное удаление и ограничение ревизий — важный этап технического обслуживания WordPress-сайта, особенно если вы активно редактируете контент. Используйте плагин WP-Optimize для регулярной очистки базы, применяйте фильтр из кода для ограничения ревизий, а в случае необходимости — SQL-запрос для мгновенного удаления.
Если хотите автоматизировать управление базой и другими задачами оптимизации, рекомендуем ознакомиться с плагином Clearfy Pro, который объединяет множество полезных функций для ускорения и безопасности WordPress.