Каждый опытный разработчик WordPress знает, что со временем база данных сайта накапливает большое количество ревизий записей. Эти ревизии — это автоматические или ручные сохранения изменений в постах, которые помогают восстановить предыдущие версии. Однако с ростом количества ревизий значительно увеличивается размер базы данных, что может замедлить работу сайта и усложнить резервное копирование.
Почему важно удалять старые ревизии WordPress
Ревизии создаются автоматически при каждом сохранении записи. Если вы активно редактируете статьи, то через несколько месяцев количество ревизий может достигать тысяч, хотя реально в работе нужны только последние несколько. Большое количество ревизий:
- Увеличивает размер таблиц базы данных, особенно wp_posts и wp_postmeta.
- Замедляет запросы к базе, что сказывается на скорости загрузки страниц и админ-панели.
- Усложняет резервное копирование и восстановление сайта.
Удаление старых ревизий помогает поддерживать базу данных в оптимальном состоянии и улучшать производительность WordPress.
Как определить число ревизий и проверить нагрузку на базу
Для начала можно оценить количество ревизий в базе с помощью запроса к базе данных MySQL (через phpMyAdmin или консоль):
SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';Этот запрос покажет общее число ревизий. Для оценки размера таблицы и влияния на производительность можно использовать плагины мониторинга базы, например, WP-Optimize или Query Monitor.
Удаление ревизий с помощью плагинов WordPress
Самый простой способ удалить старые ревизии — использовать специализированные плагины. Вот несколько популярных вариантов:
WP-Optimize
Этот многофункциональный плагин позволяет очищать базу данных от ревизий, спама, черновиков и других временных данных. Чтобы удалить ревизии:
- Установите и активируйте WP-Optimize.
- Перейдите во вкладку "Database".
- Выберите пункт "Удалить все ревизии записей".
- Нажмите "Run optimization".
Плагин также поддерживает автоматическую очистку по расписанию.
Better Delete Revision
Простой плагин, который ищет и удаляет все ревизии. После установки и активации:
- Перейдите в меню "Инструменты" → "Better Delete Revision".
- Просмотрите список ревизий.
- Нажмите кнопку "Удалить ревизии" для очистки базы.
Удаление ревизий с помощью кода WPLab
Если вы хотите реализовать удаление ревизий программно, можно создать собственную функцию, которая удалит все ревизии, используя WP_Query и функции WordPress. Ниже пример функции wplab_delete_post_revisions():
function wplab_delete_post_revisions() {
global $wpdb;
// Получаем все ID ревизий
$revisions = $wpdb->get_col("SELECT ID FROM {$wpdb->posts} WHERE post_type = 'revision'");
if (empty($revisions)) {
return 'Ревизий не найдено';
}
foreach ($revisions as $revision_id) {
wp_delete_post($revision_id, true); // Удаляем ревизию без перемещения в корзину
}
return 'Удалено ревизий: ' . count($revisions);
}
// Запуск удаления
add_action('admin_init', function() {
if (current_user_can('manage_options') && isset($_GET['wplab_delete_revisions'])) {
$result = wplab_delete_post_revisions();
add_action('admin_notices', function() use ($result) {
echo '<div class="notice notice-success is-dismissible"><p>' . esc_html($result) . '</p></div>';
});
}
});Для запуска удаления добавьте в адресную строку админки параметр ?wplab_delete_revisions=1. Это безопасный способ удалить все ревизии одним кликом, не прибегая к плагинам.
Ограничение количества ревизий в WordPress
Чтобы предотвратить накопление большого количества ревизий, можно ограничить их число в файле wp-config.php. Добавьте туда строку:
define('WP_POST_REVISIONS', 5);Это позволит хранить не более пяти ревизий на запись, а старые будут удаляться автоматически при сохранении новых.
Резервное копирование перед очисткой базы
Перед любыми операциями с базой данных крайне важно сделать резервную копию. Это обезопасит вас на случай непредвиденных ошибок. Можно использовать плагин UpdraftPlus или создать дамп базы через phpMyAdmin.
Выводы и рекомендации по удалению ревизий
Удаление старых ревизий записей — важная задача для поддержания производительности WordPress-сайта. Регулярно очищайте базу от ненужных ревизий, ограничивайте их количество и обязательно делайте бэкапы. Используйте плагины для удобства или собственные функции WPLab, если хотите иметь полный контроль над процессом.
Таким образом, грамотное управление ревизиями помогает избежать раздувания базы данных и ускоряет работу сайта, что положительно сказывается на опыте пользователей и SEO.