Как удалить старые версии постов в WordPress без потери данных

Почему стоит очищать старые версии постов (ревизии)

WordPress по умолчанию сохраняет каждое изменение записи как отдельную ревизию. Это удобно для восстановления данных, но со временем количество ревизий может существенно разрастись и замедлять работу базы данных, увеличивать её размер и влиять на производительность сайта. Особенно это заметно на больших сайтах с частым редактированием контента.

Диагностика проблемы: как проверить количество ревизий

Для оценки количества ревизий и их влияния на базу можно выполнить SQL-запрос напрямую в phpMyAdmin или через WP CLI:

SELECT post_type, COUNT(*) as revisions_count FROM wp_posts WHERE post_type = 'revision' GROUP BY post_type;

Или используя WP CLI:

wp post list --post_type=revisions --format=ids | wc -w
<

Если число ревизий превышает несколько тысяч, стоит задуматься об их очистке.

Пошаговое удаление старых ревизий в WordPress

1. Создание резервной копии базы данных

Перед любыми операциями с базой данных сделайте резервную копию. Это даст гарантию, что вы сможете восстановить данные в случае ошибки.

2. Удаление ревизий через SQL-запрос

Самый простой и быстрый способ очистить ревизии — выполнить следующий запрос в phpMyAdmin или через WP CLI:

DELETE FROM wp_posts WHERE post_type = 'revision';

Этот запрос удаляет все ревизии из базы. Если хотите удалить только ревизии старше определённого времени, можно использовать, например:

DELETE FROM wp_posts WHERE post_type = 'revision' AND post_date < DATE_SUB(NOW(), INTERVAL 30 DAY);

3. Ограничение количества ревизий в будущем

Чтобы предотвратить накопление большого числа ревизий, добавьте в wp-config.php следующую строку:

define('WP_POST_REVISIONS', 3);

Это ограничит число сохраняемых ревизий до 3 на каждую запись.

4. Очистка избыточных метаданных ревизий

Некоторые плагины и темы могут сохранять метаданные для ревизий. Для очистки можно использовать WP-CLI:

wp post meta delete $(wp post list --post_type=revision --format=ids) _some_meta_key

Замените _some_meta_key на конкретный ключ метаданных, если известен.

Проверка результата после удаления ревизий

Повторите первоначальный запрос:

SELECT COUNT(*) FROM wp_posts WHERE post_type = 'revision';

Он должен вернуть 0 или число ревизий, не превышающее заданный лимит (если применяли ограничение в wp-config.php).

Проверьте работу сайта, особенно редактора постов, чтобы убедиться, что всё функционирует корректно.

Частые ошибки и как их исправить

  • Удаление ревизий без резервной копии. Решение: всегда делайте бэкап базы перед такими операциями.
  • Ошибки в SQL-запросах из-за префикса таблиц. Проверьте префикс wp_ в вашей базе и исправьте запросы соответственно.
  • Проблемы с правами доступа при использовании WP CLI. Запускайте команды от пользователя с нужными правами или через sudo.
  • Неправильное значение константы WP_POST_REVISIONS. Значение должно быть целым числом, 0 для отключения ревизий или положительным числом для ограничения.

Практические советы по безопасности и производительности

  • Ограничение ревизий снижает нагрузку на базу и ускоряет резервное копирование.
  • Регулярно планируйте очистку ревизий, например, с помощью WP-Cron или внешних скриптов.
  • Используйте плагин Clearfy Pro (https://wpshop.ru/plugins/clearfy?utm_source=wpcheck.ru&utm_medium=article&utm_campaign=kak-udalit-starye-variacii-postov-v-wordpress-bez-poteri-dannyh) для управления ревизиями и общей оптимизации базы.
  • После удаления ревизий запустите оптимизацию таблиц базы данных (через phpMyAdmin или WP CLI):
OPTIMIZE TABLE wp_posts;

Сравнение способов удаления ревизий

МетодПреимуществаНедостатки
SQL-запросБыстро, без сторонних плагиновТребует доступа к базе и аккуратности
WP-CLIАвтоматизация, безопасность, можно скриптоватьТребует навыков работы с консолью
Плагин (например, Clearfy)Удобный интерфейс, дополнительные функцииДополнительная нагрузка на сайт, может быть платным

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как создать плагин для автоматического удаления спама в комментариях WordPress
30.11.2025
Как решить проблему отключения плагинов в WordPress при использовании константы DISABLE_WP_CRON
24.01.2026
Диагностика и решение проблем с неработающими AJAX в WooCommerce
28.06.2026
Как отключить autoload в WordPress для повышения производительности
04.04.2026
Как отключить email-уведомления WooCommerce для отдельных типов заказов
15.07.2026
×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше