В процессе редактирования записей WordPress создаёт множество редакционных версий (revisions), которые помогают откатиться к предыдущим вариантам текста. Однако со временем эти версии начинают занимать значительное место в базе данных, замедляя работу сайта. В этой статье разберём, как удалить редакционные записи, при этом не затрагивая основную запись, а также познакомимся с практическими способами решения задачи — от плагинов до собственных функций.
Что такое редакционные записи (revisions) в WordPress и почему их стоит удалять
Редакционные записи — это автоматические сохранения изменений поста, которые WordPress создаёт при каждом сохранении. Они позволяют вернуться к предыдущим версиям, если что-то пошло не так. Но:
- При большом количестве постов число редакций может исчисляться тысячами.
- Они увеличивают размер таблиц
wp_postsиwp_postmeta, замедляя запросы. - Это негативно влияет на скорость сайта и бэкапов.
Поэтому периодическая очистка редакций — хорошая практика для оптимизации.
Удаление редакционных записей с помощью плагинов
Плагин Clearfy Pro для очистки редакций
Clearfy Pro (https://wpshop.ru/plugins/clearfy-pro/?utm_source=wpcompany.ru&utm_medium=article&utm_campaign=kak-udalit-redakcionnye-zapisi-wordpress-bez-udaleniya-iz-bazy) — мощный инструмент для оптимизации WordPress, включая удаление редакций.
После установки и активации в разделе «Оптимизация» вы найдёте опцию удаления редакций. Плагин не только удалит редакции, но и предотвратит их накопление в будущем, если включить соответствующую настройку.
WP-Optimize
WP-Optimize — бесплатный и популярный плагин, который позволяет очистить базу данных от мусора, включая редакционные записи. В разделе базы данных выберите пункт «Удалить все старые редакции» и выполните очистку.
Удаление редакций с помощью SQL-запросов и PHP-кода
Удаление редакций через SQL-запрос
Если вы уверены в своих действиях и имеете доступ к базе данных, можно запустить запрос напрямую:
DELETE FROM wp_posts WHERE post_type = 'revision';Этот запрос удалит все редакции. Однако будьте осторожны — рекомендуется сделать резервную копию базы данных перед выполнением.
Автоматизация удаления редакций с помощью PHP-функции
Можно создать собственную функцию, которая удалит редакции через WP_Query и wp_delete_post:
function wpcompany_delete_post_revisions() {
$args = [
'post_type' => 'revision',
'posts_per_page' => -1,
'fields' => 'ids',
'post_status' => 'inherit',
];
$revisions = get_posts($args);
foreach ($revisions as $revision_id) {
wp_delete_post($revision_id, true);
}
}
// Запуск удаления один раз
add_action('admin_init', 'wpcompany_delete_post_revisions');Эта функция при заходе в админку удалит все редакции. После выполнения её лучше отключить, чтобы не запускалась постоянно.
Как ограничить количество редакций для новых записей
Чтобы редакции не накапливались бесконтрольно, можно задать лимит их количества в файле wp-config.php:
define('WP_POST_REVISIONS', 3); // Хранить не более 3 редакцийЭто позволит сохранить историю изменений, но не более нужного количества.
Полное отключение редакций
Если вы уверены, что редакции не нужны, можно полностью отключить их, но будьте осторожны, это уберёт возможность отката:
define('WP_POST_REVISIONS', false);Использование WPCompany Expert Review для контроля качества записей
Если вы используете на сайте плагин Expert Review (https://wpshop.ru/plugins/expert-review/?utm_source=wpcompany.ru&utm_medium=article&utm_campaign=kak-udalit-redakcionnye-zapisi-wordpress-bez-udaleniya-iz-bazy), он позволяет анализировать записи и выводить рекомендации по улучшению. Вместе с очисткой редакций это помогает поддерживать чистоту и качество контента на высоком уровне.
Рекомендации и советы при работе с редакциями
1. Всегда делайте резервную копию базы данных перед удалением редакций.
2. Используйте плагины с осторожностью и проверяйте их совместимость с вашей версией WordPress.
3. Регулярно очищайте редакции, например, раз в 1-2 месяца, чтобы база данных не разрасталась.
4. Ограничьте количество редакций через wp-config.php для новых записей.
5. При необходимости используйте автоматизированные задачи (cron), чтобы запускать очистку регулярно.