Ревизии записей в WordPress — это полезная функция, которая позволяет сохранять несколько версий постов и страниц. Однако со временем их количество может значительно вырасти, что приведет к увеличению размера базы данных и замедлению работы сайта. В этой статье мы подробно разберем, как удалить старые ревизии записей, а также оптимизировать базу данных для повышения производительности WordPress.
Что такое ревизии записей и почему их нужно удалять
Ревизии — это автоматические и сохранённые вручную версии постов и страниц. Каждый раз, когда вы обновляете запись, WordPress сохраняет её копию как ревизию. Это удобно для восстановления предыдущих вариантов контента.
Однако для сайтов с большим количеством публикаций ревизии могут накапливаться в огромном количестве. Например, если у вас 1000 записей и каждая содержит по 20 ревизий, то в базе данных будет дополнительно 20 000 записей, что негативно влияет на скорость запросов и размер резервных копий.
Удаление старых ревизий помогает:
- Освободить место в базе данных;
- Ускорить работу сайта;
- Снизить нагрузку на сервер при выполнении запросов;
- Сделать резервное копирование быстрее и легче.
Как ограничить количество сохраняемых ревизий
Чтобы предотвратить чрезмерное накопление ревизий, можно ограничить их количество в файле wp-config.php. Добавьте туда следующую строку:
define('WP_POST_REVISIONS', 3); // Хранить только 3 ревизии записи
Так вы ограничите количество версий для каждой записи, что существенно снизит рост базы данных.
Если хотите полностью отключить ревизии, можно прописать:
define('WP_POST_REVISIONS', false); // Отключить ревизии
Но будьте осторожны — это уберет возможность откатиться к предыдущим версиям.
Удаление старых ревизий вручную через SQL-запрос
Для опытных пользователей, имеющих доступ к phpMyAdmin или другому инструменту управления базой, удобно удалить ревизии напрямую SQL-запросом.
Вот пример запроса для удаления всех ревизий:
DELETE FROM wp_posts WHERE post_type = 'revision';
Если у вас другой префикс таблиц, замените wp_ на ваш.
После удаления ревизий рекомендуется оптимизировать таблицы базы данных для освобождения места:
OPTIMIZE TABLE wp_posts;
Так вы уменьшите размер файлов базы и улучшите производительность.
Удаление ревизий с помощью плагина WP-Optimize
Для тех, кто не хочет работать напрямую с базой, отлично подойдет плагин WP-Optimize. Он позволяет одним кликом очистить базу от ревизий, спама, мусора и выполнить оптимизацию таблиц.
Как использовать:
- Установите и активируйте плагин через админку WordPress.
- Перейдите в раздел WP-Optimize > Database.
- Отметьте пункт «Удалить все старые ревизии записей».
- Нажмите кнопку «Выполнить».
Плагин безопасно удалит ненужные ревизии и оптимизирует таблицы, ускорив работу сайта.
Автоматическое удаление ревизий с помощью кастомного кода
Если хотите внедрить автоматическую очистку ревизий в код темы или плагина, можно использовать следующий пример. Он удаляет ревизии старше 30 дней по крону WordPress:
function wordpressa_delete_old_revisions() {
global $wpdb;
$days = 30;
$wpdb->query(
$wpdb->prepare(
"DELETE FROM {$wpdb->posts} WHERE post_type = 'revision' AND post_modified < DATE_SUB(NOW(), INTERVAL %d DAY)",
$days
)
);
}
if (!wp_next_scheduled('wordpressa_cron_delete_revisions')) {
wp_schedule_event(time(), 'daily', 'wordpressa_cron_delete_revisions');
}
add_action('wordpressa_cron_delete_revisions', 'wordpressa_delete_old_revisions');
Этот код добавляет ежедневное задание, которое удаляет ревизии, старше 30 дней, не трогая свежие версии. Такой подход помогает поддерживать базу в порядке без ручного вмешательства.
Где разместить этот код
Рекомендуется добавить его в файл functions.php дочерней темы или создать небольшой плагин для удобства управления.
Как проверить количество ревизий и состояние базы
Для оценки текущего состояния базы можно использовать SQL-запрос:
SELECT COUNT(*) AS revisions_count FROM wp_posts WHERE post_type = 'revision';
Также полезно проверить размер таблиц базы, например, в phpMyAdmin или с помощью плагина WP-DBManager.
Регулярный мониторинг позволит вовремя принимать меры для оптимизации и предотвращения роста ненужных данных.
Дополнительные советы по оптимизации базы данных WordPress
Помимо удаления ревизий, рекомендуем рассмотреть следующие меры:
- Удаление спам-комментариев и мусорных данных;
- Оптимизация таблиц через SQL-запрос или плагины;
- Настройка автоматического удаления мусора с помощью плагинов, например, Clearfy Pro;
- Ограничение хранения данных статистики и логов.
Все эти методы в комплексе помогут поддерживать базу данных WordPress в оптимальном состоянии.