Если вы активно ведёте блог или сайт на WordPress, одна из проблем, с которой вы наверняка сталкивались — это накопление большого количества ревизий и черновиков. Они занимают место в базе данных, что со временем может замедлить работу сайта и усложнить его обслуживание. В этой статье мы подробно разберём, как эффективно управлять и автоматически удалять старые черновики и ревизии в WordPress, чтобы оптимизировать производительность и облегчить обслуживание сайта.
Почему важно удалять старые ревизии и черновики в WordPress
WordPress по умолчанию хранит множество ревизий каждой записи и сохраняет черновики, которые вы создаёте в процессе редактирования. Это удобно для восстановления предыдущих версий, но при большом количестве контента база данных разрастается, что сказывается на производительности.
Большое количество ревизий замедляет запросы к базе данных, увеличивает её размер и время резервного копирования. Это особенно критично для сайтов с большим количеством авторов и активным редактированием контента.
Удаление старых ревизий и неиспользуемых черновиков помогает:
- Уменьшить размер базы данных
- Ускорить работу сайта
- Снизить нагрузку на сервер при резервном копировании
- Облегчить администрирование и поддержку сайта
Как удалить ревизии и черновики вручную через phpMyAdmin
Если у вас есть доступ к базе данных через phpMyAdmin или другой клиент, можно быстро очистить ревизии и черновики с помощью SQL-запросов.
Для удаления всех ревизий выполните запрос:
DELETE FROM wp_posts WHERE post_type = 'revision';Для удаления всех черновиков (posts с типом 'post' и статусом 'draft') выполните:
DELETE FROM wp_posts WHERE post_status = 'draft';Важно: перед выполнением запросов сделайте резервную копию базы данных! Такие операции необратимы.
Однако такой подход не автоматический и не учитывает необходимость сохранять последние версии записей — это просто полное удаление.
Автоматизация удаления старых черновиков и ревизий с помощью кода WordPress
Для более тонкой настройки и автоматизации удаления можно использовать кастомные функции в файле functions.php вашей темы или создать небольшой плагин. Мы рассмотрим пример функции, которая удаляет ревизии старше 30 дней и черновики старше 7 дней.
Пример функции для автоматического удаления старых ревизий и черновиков
function wpweb_delete_old_revisions_and_drafts() {
global $wpdb;
// Удаляем ревизии старше 30 дней
$wpdb->query(
$wpdb->prepare(
"DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_date < %s",
date('Y-m-d H:i:s', strtotime('-30 days'))
)
);
// Удаляем черновики старше 7 дней
$wpdb->query(
$wpdb->prepare(
"DELETE FROM {$wpdb->posts} WHERE post_status = 'draft' AND post_date < %s",
date('Y-m-d H:i:s', strtotime('-7 days'))
)
);
}
// Запускаем функцию раз в сутки с помощью WP Cron
if ( ! wp_next_scheduled( 'wpweb_daily_cleanup' ) ) {
wp_schedule_event( time(), 'daily', 'wpweb_daily_cleanup' );
}
add_action( 'wpweb_daily_cleanup', 'wpweb_delete_old_revisions_and_drafts' );Данная функция при помощи WP Cron будет запускаться раз в сутки и удалять ненужные ревизии и черновики, освобождая место в базе данных автоматически.
Обратите внимание, что для корректной работы WP Cron сайт должен регулярно посещаться пользователями. Если сайт малопосещаемый — рекомендуется настроить системный cron на сервере для запуска wp-cron.php.
Использование готовых плагинов для удаления ревизий и черновиков
Если вы не хотите писать код — можно воспользоваться проверенными плагинами, которые выполняют очистку базы автоматически и имеют дополнительные настройки.
1. WP-Optimize
Этот плагин не только очищает ревизии и черновики, но и оптимизирует всю базу данных, удаляя мусор и улучшая производительность. Можно настроить автоматическую очистку с нужной периодичностью.
2. Advanced Database Cleaner
Очень гибкий плагин для управления базой данных. Позволяет удалять старые ревизии, черновики, спам, временные опции и многое другое. Присутствует возможность планирования очистки.
3. WP-Sweep
Простое и эффективное решение для очистки базы от ревизий, черновиков, спама и других данных, которые замедляют сайт. Имеет возможность удаления данных по отдельным категориям.
Как настроить и использовать WP-Optimize для удаления ревизий и черновиков
После установки и активации WP-Optimize:
- Перейдите в административной панели в раздел «WP-Optimize» → «Database».
- Отметьте опции «Удалить все ревизии записей» и «Удалить все черновики». Также можно выбрать другие опции для оптимизации.
- Нажмите кнопку «Run all selected optimizations» для запуска очистки базы сразу.
- Для автоматизации перейдите в раздел «Settings» и включите автоматическую оптимизацию базы с нужной периодичностью (например, раз в неделю).
WP-Optimize — мощный инструмент, который поможет поддерживать базу данных в чистоте без необходимости писать код.
Заключение
Регулярное удаление старых ревизий и черновиков — важный этап оптимизации WordPress сайта. Это помогает держать базу данных компактной и ускорять работу сайта. Вы можете использовать простой SQL запрос для разовой очистки, написать собственный код для автоматизации или воспользоваться готовыми плагинами, такими как WP-Optimize, Advanced Database Cleaner или WP-Sweep.
Если вы хотите гибко контролировать этот процесс и точно знать, что удаляется, лучше использовать собственные функции и планировщик WP Cron. Для быстрого и удобного решения — подойдут плагины с автоматической очисткой.
Используйте эти рекомендации, чтобы ваш WordPress-сайт оставался быстрым и отзывчивым даже при большом объёме контента и активном редактировании.