Ревизии записей в WordPress — удобная функция для сохранения истории изменений контента. Однако со временем их количество может значительно разрастись, замедляя работу сайта и занимая лишнее место в базе данных. В этой статье разберём, как эффективно и безопасно удалить старые ревизии в WordPress, используя плагины и примеры кода.
Что такое ревизии в WordPress и почему их нужно удалять
Ревизии — это сохранённые версии записей и страниц, которые WordPress автоматически создаёт при их редактировании. Это удобно, чтобы откатиться к предыдущей версии текста. Однако если вы редко используете эту функцию, накопление большого числа ревизий приводит к раздуванию базы данных и замедлению запросов.
Например, на сайте с сотнями постов и десятками правок в каждом могут храниться тысячи ревизий. Это не только расходует дисковое пространство, но и замедляет работу административной панели.
Удаление старых ревизий позволяет оптимизировать базу данных и ускорить работу сайта. Но важно сделать это безопасно, чтобы не потерять нужные данные.
Как посмотреть количество ревизий в базе данных
Для начала полезно узнать, сколько ревизий накопилось на вашем сайте. Для этого можно использовать SQL-запрос через phpMyAdmin или другой инструмент управления базой данных:
SELECT post_type, COUNT(*) as revisions_count FROM wp_posts WHERE post_type = 'revision' GROUP BY post_type;Замените wp_ на префикс таблиц вашей базы данных, если он отличается.
Результат покажет примерное количество ревизий. Если цифра превышает несколько тысяч, стоит задуматься об очистке.
Удаление ревизий через плагин WP-Optimize
Один из самых популярных способов — использовать плагин WP-Optimize. Он позволяет безопасно очистить ревизии и оптимизировать базу данных без необходимости писать код.
Пошагово:
- Установите и активируйте WP-Optimize через админ-панель WordPress.
- Перейдите в раздел «WP-Optimize» → «База данных».
- Отметьте опцию «Удалить все старые ревизии».
- Нажмите «Выполнить оптимизацию».
Плагин аккуратно удалит все ревизии, которые не нужны, и сожмёт таблицы базы данных для повышения производительности.
Удаление ревизий с помощью SQL-запроса
Если вы предпочитаете работать напрямую с базой данных, можно выполнить следующий SQL-запрос для удаления всех ревизий:
DELETE FROM wp_posts WHERE post_type = 'revision';Этот запрос полностью очистит таблицу от ревизий. Важно: перед выполнением обязательно сделайте резервную копию базы данных, чтобы избежать потери данных.
Если хотите удалить только ревизии старше определённого срока, например, 30 дней, используйте запрос:
DELETE FROM wp_posts WHERE post_type = 'revision' AND post_modified <= DATE_SUB(NOW(), INTERVAL 30 DAY);Так вы сохраните последние ревизии и удалите только устаревшие.
Автоматическое ограничение количества ревизий в WordPress через functions.php
Чтобы предотвратить накопление большого количества ревизий в будущем, можно ограничить их число в настройках WordPress. Для этого добавьте следующий код в файл functions.php вашей темы или в плагин для пользовательских функций:
function wplist_limit_revisions() {
define('WP_POST_REVISIONS', 5); // Хранить не более 5 ревизий
}
add_action('init', 'wplist_limit_revisions');Этот код ограничит число ревизий до 5 для каждой записи. Старые ревизии будут автоматически удаляться WordPress при сохранении новых.
Использование WP-CLI для управления ревизиями
Если у вас есть доступ к командной строке сервера и установлен WP-CLI, можно удалить ревизии командой:
wp post delete $(wp post list --post_type='revision' --format=ids) --forceЭта команда быстро удалит все ревизии, освободив место в базе данных. WP-CLI — мощный инструмент для администрирования WordPress, идеально подходит для опытных пользователей.
Дополнительные советы по оптимизации базы данных
После удаления ревизий рекомендуется выполнить оптимизацию таблиц базы данных, чтобы освободить занятое пространство:
- Через phpMyAdmin выберите таблицы и выберите «Оптимизировать».
- Или используйте WP-Optimize для комплексной очистки и оптимизации.
- Регулярно создавайте резервные копии базы данных перед такими операциями.
Также можно комбинировать очистку ревизий с удалением спама и мусорных комментариев, что дополнительно ускорит работу сайта.
Итоговые рекомендации по удалению ревизий в WordPress
Удаление старых ревизий — важная задача для поддержания производительности WordPress-сайта. Используйте плагины вроде WP-Optimize для удобства, или SQL-запросы и WP-CLI для более гибкого контроля.
Не забывайте ограничивать количество ревизий в будущем с помощью константы WP_POST_REVISIONS и делать регулярные резервные копии базы данных. Такой подход поможет поддерживать сайт быстрым и стабильным.