Автосохранения (autosaves) и ревизии постов (post revisions) в WordPress — полезные функции, которые помогают сохранить изменения и избежать потери данных. Однако с течением времени их количество может значительно вырасти, занимая место в базе данных и замедляя сайт. В этой статье подробно рассмотрим, как удалить автосохранения и ревизии постов, оптимизировать базу данных и приведём примеры кода для автоматизации процесса.
Что такое автосохранения и ревизии в WordPress и зачем их удалять
Автосохранения — временные версии поста, которые WordPress создаёт автоматически через определённые промежутки времени, чтобы предотвратить потерю данных. Ревизии — сохранённые версии поста, которые фиксируются при каждом сохранении или обновлении записи.
Преимущество этих функций очевидно: можно вернуться к предыдущей версии статьи или восстановить данные после сбоев. Но если их слишком много, база данных разрастается, что негативно влияет на производительность сайта и увеличивает время резервного копирования.
Удаление старых автосохранений и ревизий помогает освободить место и ускорить работу сайта. Но делать это нужно аккуратно, чтобы не потерять нужные версии.
Удаление автосохранений и ревизий через phpMyAdmin
Самый прямой способ — удалить записи из базы данных вручную. Для этого нужно зайти в phpMyAdmin и выполнить SQL-запросы.
Удаление автосохранений
Автосохранения хранятся в таблице wp_posts с типом autosave. Чтобы удалить все автосохранения, используйте запрос:
DELETE FROM wp_posts WHERE post_type = 'revision' AND post_status = 'inherit' AND post_parent IN (SELECT ID FROM wp_posts WHERE post_type = 'post');
DELETE FROM wp_posts WHERE post_type = 'autosave';
Первый запрос удаляет ревизии, второй — автосохранения. Обязательно сделайте резервную копию базы перед выполнением.
Удаление ревизий
Ревизии тоже хранятся в wp_posts с типом revision. Чтобы удалить все ревизии:
DELETE FROM wp_posts WHERE post_type = 'revision';
Этот запрос удалит все ревизии вне зависимости от типа поста.
Удаление автосохранений и ревизий с помощью плагинов
Если вы не хотите ругаться с базой данных напрямую, можно использовать плагины:
- WP-Optimize — бесплатный плагин для очистки базы данных, в том числе удаления ревизий и автосохранений.
- Advanced Database Cleaner — позволяет управлять ревизиями, автосохранениями и оптимизировать таблицы базы.
- Clearfy Pro (https://wpshop.ru/clearfy-pro/?utm_source=wprus.ru&utm_medium=article&utm_campaign=kak-udalit-avtochernoviki-i-revizii-postov) — удобный инструмент для оптимизации и очистки, в том числе удаления ревизий и автосохранений с дополнительными функциями безопасности.
Все эти плагины имеют удобный интерфейс и позволяют выполнять очистку одним кликом.
Автоматизация удаления автосохранений и ревизий через код
Можно прописать функции, которые будут автоматически удалять старые ревизии и автосохранения с помощью WP-Cron или запускаться вручную.
Пример функции для удаления ревизий и автосохранений
function wprus_delete_old_revisions_and_autosaves() {
global $wpdb;
// Удаляем ревизии старше 30 дней
$wpdb->query(
"DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_modified < NOW() - INTERVAL 30 DAY"
);
// Удаляем все автосохранения
$wpdb->query(
"DELETE FROM {$wpdb->posts} WHERE post_type = 'autosave'"
);
}
// Запуск функции по крону
if (!wp_next_scheduled('wprus_cleanup_revisions_hook')) {
wp_schedule_event(time(), 'daily', 'wprus_cleanup_revisions_hook');
}
add_action('wprus_cleanup_revisions_hook', 'wprus_delete_old_revisions_and_autosaves');
Эта функция удалит автосохранения и ревизии старше 30 дней ежедневно. Можно настроить период удаления и добавить уведомления.
Ограничение количества ревизий для новых постов
Чтобы предотвратить накопление большого числа ревизий, можно ограничить их количество в файле wp-config.php:
define('WP_POST_REVISIONS', 5); // Хранить не более 5 ревизий на пост
Это позволит сохранить функциональность ревизий, но без избыточного роста базы.
Рекомендации по оптимизации базы данных после удаления
После удаления ревизий и автосохранений в базе данных таблица wp_posts может содержать «мусорные» данные и фрагменты. Чтобы оптимизировать таблицы и улучшить производительность, выполните оптимизацию через phpMyAdmin или плагин, например, WP-Optimize.
Оптимизация освобождает пространство и ускоряет запросы к базе, что особенно важно для больших сайтов с тысячами постов.
Заключение
Автосохранения и ревизии — ценные функции WordPress, но их нужно контролировать. Регулярное удаление старых автосохранений и ревизий помогает поддерживать базу данных в порядке и сохранять производительность сайта. Для этого можно использовать как SQL-запросы, так и готовые плагины вроде Clearfy Pro или WP-Optimize, а также автоматизировать процесс с помощью собственного кода.
Если хотите быстро и безопасно оптимизировать базу данных, советуем обратить внимание на Clearfy Pro — плагин с широким функционалом и поддержкой обновлений.