WordPress по умолчанию сохраняет множество ревизий ваших постов и страниц. Это удобно для восстановления предыдущих версий, но со временем в базе данных накапливается огромное количество старых ревизий, которые замедляют работу сайта и увеличивают размер базы данных. В этой статье мы подробно рассмотрим, как безопасно и эффективно удалить старые версии постов в WordPress, используя плагины и кастомные решения с кодом.
Почему важно удалять старые версии постов в WordPress
Каждый раз при сохранении поста WordPress создаёт новую ревизию. Если вы часто редактируете записи, количество ревизий может достигать сотен и тысяч. Это приводит к:
- Увеличению размера базы данных, что замедляет запросы и загрузку сайта.
- Росту времени бэкапа и сложности восстановления данных.
- Засорению административной панели лишней информацией.
Удаление старых ревизий поможет значительно оптимизировать работу сайта, особенно на хостингах с ограниченными ресурсами.
Как ограничить количество ревизий в WordPress: настройка через wp-config.php
Чтобы предотвратить накопление большого количества ревизий, можно ограничить их число на уровне конфигурации. Для этого в файл wp-config.php добавьте следующую строку:
define('WP_POST_REVISIONS', 5);Здесь число 5 означает, что WordPress будет хранить не более 5 ревизий для каждой записи. Вы можете указать любое другое количество, либо false, чтобы полностью отключить ревизии (не рекомендуется).
После добавления этой строки новые ревизии будут ограничены, но старые останутся в базе и их нужно удалить отдельно.
Удаление старых ревизий с помощью плагинов
Плагин WP-Optimize
Один из самых популярных плагинов для оптимизации базы данных — WP-Optimize. Он позволяет быстро очистить ревизии, спам-комментарии и другие ненужные данные.
Как использовать:
- Установите и активируйте плагин через админку WordPress.
- Перейдите в меню WP-Optimize > Database.
- Отметьте пункт "Очистить все ревизии постов".
- Нажмите "Запустить оптимизацию".
Плагин удалит все старые версии постов, освободив место в базе.
Плагин Clearfy Pro
Если вы пользуетесь Clearfy Pro, то в нём есть удобный функционал для очистки ревизий и других неиспользуемых данных базы. Это дополнительно поможет ускорить сайт и снизить нагрузку.
Clearfy Pro позволяет настроить автоматическую периодическую очистку, что удобно для регулярного поддержания базы в порядке.
Удаление ревизий через SQL-запросы — быстрый способ
Если вы уверены в своих действиях и имеете доступ к базе данных через phpMyAdmin или другой инструмент, можно удалить старые ревизии напрямую с помощью SQL. Вот пример запроса:
DELETE FROM wp_posts WHERE post_type = 'revision';Этот запрос удалит все ревизии из таблицы wp_posts. Перед выполнением обязательно сделайте бэкап базы данных, чтобы избежать потери данных.
Если вы хотите удалять ревизии старше определённого времени, можно использовать более сложный запрос с условием по дате:
DELETE FROM wp_posts WHERE post_type = 'revision' AND post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);Этот запрос удалит ревизии старше 30 дней.
Автоматизация удаления ревизий с помощью пользовательской функции
Для автоматического удаления ревизий можно добавить в файл functions.php вашей темы или в отдельный плагин следующий код:
function wptalk_delete_old_revisions() {
global $wpdb;
$days = 30; // Удалять ревизии старше 30 дней
$result = $wpdb->query(
$wpdb->prepare(
"DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_date < DATE_SUB(NOW(), INTERVAL %d DAY)",
$days
)
);
return $result;
}
// Запускаем очистку раз в неделю
if (!wp_next_scheduled('wptalk_weekly_revision_cleanup')) {
wp_schedule_event(time(), 'weekly', 'wptalk_weekly_revision_cleanup');
}
add_action('wptalk_weekly_revision_cleanup', 'wptalk_delete_old_revisions');Этот код удаляет ревизии старше 30 дней один раз в неделю. Такой подход позволяет поддерживать базу в оптимальном состоянии без дополнительного участия.
Рекомендации по работе с ревизиями в WordPress
Для эффективного управления ревизиями советуем:
- Ограничить количество ревизий через
wp-config.php, чтобы не накапливалось слишком много данных. - Регулярно очищать старые ревизии с помощью плагинов или кастомных скриптов.
- Делать резервные копии базы перед удалением данных для предотвращения случайных потерь.
- Использовать плагины оптимизации, например, Clearfy Pro или WP-Optimize, чтобы автоматизировать процесс.
Выводы
Удаление старых версий постов — важная задача для поддержания производительности и здоровья базы данных WordPress. Используйте ограничение ревизий, регулярные очистки через плагины или собственные скрипты, чтобы избежать замедления сайта и проблем с хранением данных.
Если вы хотите, чтобы ваш сайт работал быстро и стабильно, не забывайте про оптимизацию базы данных и ревизий в частности.