В WordPress по умолчанию сохраняются версии (ревизии) каждой записи и страницы при их редактировании. Это очень удобно для восстановления контента, но с течением времени большое количество ревизий может сильно раздувать базу данных и замедлять работу сайта. В этой статье мы подробно рассмотрим, как удалить версии записей в WordPress, а также как ограничить их количество и оптимизировать работу базы данных.
Что такое версии записей (ревизии) в WordPress и зачем их удалять
Ревизии — это сохранённые копии записи или страницы, которые WordPress автоматически создаёт при каждом сохранении. Они позволяют откатиться к предыдущей версии контента, если что-то пошло не так. Однако при активном редактировании количество ревизий может достигать сотен и тысяч, занимая лишнее место в базе данных.
Из-за большого числа ревизий:
- Замедляется выполнение запросов к базе данных, особенно при выводе списка записей в админке.
- Увеличивается размер резервных копий сайта.
- Может повышаться нагрузка на сервер, особенно при использовании дешёвого хостинга.
Поэтому регулярно удалять старые ревизии и ограничивать их количество — хорошая практика для оптимизации WordPress.
Как удалить все ревизии записей через phpMyAdmin
Самый простой и быстрый способ удалить все ревизии — выполнить SQL-запрос напрямую в базе данных через phpMyAdmin или другой инструмент управления базой данных:
DELETE FROM wp_posts WHERE post_type = 'revision';Замените wp_ на ваш префикс таблиц, если он отличается. Этот запрос удалит все ревизии, освобождая место в базе данных. Но будьте осторожны: после этого восстановить старые версии записей не получится.
Также рекомендуется после удаления выполнить оптимизацию таблиц, чтобы уменьшить физический размер базы данных. В phpMyAdmin выберите таблицу wp_posts и нажмите «Оптимизировать».
Удаление ревизий с помощью плагинов
Если вы не хотите работать напрямую с базой данных, можно использовать специальные плагины:
- WP-Sweep — позволяет удалить ревизии, автосохранения и прочие ненужные данные. Интерфейс прост и понятен.
- Advanced Database Cleaner — более функциональный плагин для очистки базы данных, включая ревизии, мусорные комментарии и многое другое.
После установки и активации плагина достаточно перейти в его настройки и выбрать очистку ревизий. Плагины обычно создают резервную копию автоматически, но лучше сделать её вручную перед очисткой.
Как ограничить количество ревизий в WordPress для предотвращения раздувания базы
Чтобы предотвратить накопление большого количества ревизий, можно ограничить их число. Для этого добавьте в файл wp-config.php следующую строку:
define('WP_POST_REVISIONS', 5);Здесь цифра 5 означает, что WordPress будет хранить не более 5 ревизий для каждой записи. Вы можете указать любое число, либо совсем отключить ревизии, задав значение false:
define('WP_POST_REVISIONS', false);Однако отключать ревизии полностью не рекомендуется, так как это уменьшит возможности восстановления контента.
Пример кода функции для удаления ревизий программно
Если хотите реализовать удаление ревизий через собственный плагин или в теме, можно использовать следующий пример функции:
function wpmentor_delete_post_revisions() {
global $wpdb;
$revisions = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision'");
foreach ( $revisions as $revision_id ) {
wp_delete_post( $revision_id, true );
}
}
// Вызов функции, например, при активации плагина
// register_activation_hook(__FILE__, 'wpmentor_delete_post_revisions');Этот код получает список всех ревизий и удаляет их программно через функцию wp_delete_post. Аргумент true означает принудительное удаление без перемещения в корзину.
Как проверить количество ревизий в базе данных
Для оценки, сколько ревизий накопилось, можно выполнить в phpMyAdmin запрос подсчёта:
SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';Если число очень большое — стоит провести очистку и настроить ограничение ревизий.
Выводы и рекомендации по управлению ревизиями
Управление ревизиями — важный аспект оптимизации WordPress, особенно для сайтов с большим количеством контента и активным редактированием. Регулярно удаляйте старые ревизии, ограничивайте их число, используйте проверенные плагины для очистки базы и контролируйте размер базы данных.
Так вы сможете снизить нагрузку на сервер, ускорить работу сайта и сделать админку более отзывчивой.