Что такое автоматические ревизии в WordPress и зачем их удалять
WordPress автоматически сохраняет черновики и ревизии записей и страниц, чтобы вы могли вернуться к предыдущим версиям контента. Это полезно для восстановления информации, но со временем количество ревизий может значительно вырасти, что приводит к увеличению размера базы данных и замедлению работы сайта.
Удаление ненужных автоматических ревизий помогает освободить место в базе данных, улучшить производительность сайта и ускорить бэкапы. В этой статье мы разберем, как правильно удалять ревизии, не потеряв при этом важные данные, и как ограничить их количество в будущем.
Как определить количество ревизий в базе данных
Для начала стоит проверить, сколько ревизий накоплено на вашем сайте. Для этого можно использовать SQL-запрос через phpMyAdmin или любой другой клиент для работы с базой данных:
SELECT post_type, COUNT(*) AS revisions_count
FROM wp_posts
WHERE post_type = 'revision'
GROUP BY post_type;Если результат показывает тысячи ревизий, то стоит задуматься об их очистке. Особенно это актуально для сайтов с большим количеством контента и активной редакторской работой.
Удаление ревизий через SQL запрос
Самый простой способ избавиться от всех ревизий — выполнить запрос, который удалит все записи с типом revision:
DELETE FROM wp_posts WHERE post_type = 'revision';Однако такой подход не позволяет выбрать, какие ревизии оставить, а какие удалить. Поэтому перед выполнением обязательно сделайте резервную копию базы данных. Этот метод подходит, если вы уверены, что вам не нужны никакие старые версии записей.
Удаление ревизий по дате
Если вы хотите сохранить свежие ревизии, можно удалять только те, что старше определённой даты. Например, чтобы удалить ревизии старше 30 дней:
DELETE FROM wp_posts
WHERE post_type = 'revision'
AND post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);Такой подход помогает оставить актуальные версии и при этом очистить базу от устаревших данных.
Удаление ревизий с помощью WPMax функций и плагинов
Для тех, кто предпочитает работать через PHP и интерфейс WordPress, можно создать функцию, которая удаляет ревизии программно. Ниже пример функции wpmax_delete_revisions(), которую можно добавить в файл functions.php вашей темы или в собственный плагин:
function wpmax_delete_revisions() {
global $wpdb;
$deleted = $wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
return $deleted;
}Вызов этой функции удалит все ревизии из базы. Для удобства можно добавить кнопку в админку или запускать функцию через WP-CLI.
Также для управления ревизиями можно использовать популярные плагины:
- WP-Optimize — плагин для оптимизации базы данных, который позволяет удалять ревизии и другие ненужные данные одним кликом.
- Clearfy Pro (https://wpshop.ru/plugins/clearfy-pro/?utm_source=wpmax.ru&utm_medium=article&utm_campaign=kak-udalit-avtomaticheskie-revizii-v-wordpress) — расширенный инструмент для оптимизации и очистки WordPress, включая удаление ревизий.
- Advanced Database Cleaner — еще один удобный плагин для очистки и оптимизации базы данных.
Ограничение количества ревизий в WordPress
Чтобы предотвратить накопление большого количества ревизий в будущем, можно ограничить их число с помощью константы WP_POST_REVISIONS. Добавьте в wp-config.php такую строку:
define('WP_POST_REVISIONS', 5);В данном случае WordPress будет хранить не более 5 ревизий для каждой записи или страницы. Это поможет сбалансировать хранение версий и размер базы данных.
Если вы хотите полностью отключить ревизии, установите значение в false:
define('WP_POST_REVISIONS', false);Однако это не рекомендуется, так как вы потеряете возможность отката к предыдущим версиям.
Автоматическая очистка ревизий с WP-Cron
Для регулярной очистки ревизий можно настроить задачу на WP-Cron, которая будет запускаться по расписанию. Пример функции для удаления ревизий по расписанию:
function wpmax_schedule_revision_cleanup() {
if (!wp_next_scheduled('wpmax_revision_cleanup_hook')) {
wp_schedule_event(time(), 'daily', 'wpmax_revision_cleanup_hook');
}
}
add_action('wp', 'wpmax_schedule_revision_cleanup');
function wpmax_revision_cleanup() {
global $wpdb;
$wpdb->query("DELETE FROM {$wpdb->posts} WHERE post_type = 'revision'");
}
add_action('wpmax_revision_cleanup_hook', 'wpmax_revision_cleanup');Этот код добавляет ежедневное задание, которое удаляет все ревизии. Так вы будете регулярно поддерживать базу данных в порядке без лишних усилий.
Выводы и рекомендации
Удаление автоматических ревизий — эффективный способ оптимизировать базу данных WordPress и повысить производительность сайта. При этом важно:
- Всегда делать резервные копии перед очисткой базы.
- Оставлять актуальные ревизии, удаляя только старые или ненужные.
- Ограничивать количество ревизий с помощью константы
WP_POST_REVISIONS. - Использовать автоматические задачи на WP-Cron для регулярной очистки.
- Рассмотреть использование плагинов для удобства и безопасности.
Если хотите попробовать готовое решение для оптимизации, обратите внимание на Clearfy Pro, который поможет не только с ревизиями, но и с множеством других задач по улучшению WordPress.