WPCourse

Как удалить ревизии записей WordPress и ограничить их количество

Если сайт давно работает, в базе WordPress почти всегда накапливаются ревизии записей: каждая правка статьи, страницы или другого типа записи может сохранять отдельную версию. Со временем это раздувает таблицу wp_posts, замедляет резервное копирование и делает базу тяжелее без заметной пользы для посетителей.

Решение обычно состоит из двух частей: сначала удалить уже накопившиеся ревизии, затем ограничить их количество, чтобы база не росла дальше. Делать это можно через плагин, SQL-запрос или настройку в wp-config.php. Выбор зависит от того, есть ли у вас доступ к панели хостинга, phpMyAdmin или SSH.

Что такое ревизии и почему их стоит чистить

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

Проблема не в самих ревизиях как функции, а в их количестве. На небольшом блоге это может быть незаметно, а на новостном или контентном проекте — уже ощутимо. База данных растёт, запросы к ней становятся тяжелее, а бэкапы занимают больше времени и места.

Полностью отключать ревизии обычно не нужно. Практичнее оставить ограниченное число версий на запись: этого достаточно для отката, но база не разрастается бесконтрольно.

Как удалить уже накопившиеся ревизии

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

Самый простой способ — через плагин

Если вам нужен безопасный вариант без ручной работы с базой, используйте плагин для очистки. В WordPress есть инструменты, которые умеют находить и удалять ревизии, не затрагивая сами записи. Для владельца сайта это обычно самый удобный путь: меньше риска ошибиться в запросе и не нужно лезть в phpMyAdmin.

После установки плагина обычно достаточно открыть раздел очистки базы, выбрать ревизии и запустить удаление. Перед подтверждением проверьте, что речь идёт именно о revisions, а не о других типах данных вроде черновиков, спама или временных записей.

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

Ручная очистка через SQL

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

Сначала проверьте префикс таблиц. В примере ниже используется стандартный wp_, но у вас он может быть другим.

DELETE FROM wp_posts WHERE post_type = 'revision';

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

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

Как ограничить количество ревизий в WordPress

Чтобы ревизии не копились бесконечно, задайте лимит в файле wp-config.php. Это самый надёжный способ, потому что он работает на уровне ядра WordPress и не зависит от темы или плагинов.

Добавьте строку выше комментария /* That's all, stop editing! Happy publishing. */:

define( 'WP_POST_REVISIONS', 5 );

В этом примере WordPress будет хранить не больше пяти ревизий на одну запись. Если вы часто редактируете длинные тексты, можно поставить 10. Если сайт почти не редактируется, иногда достаточно 3.

Есть ещё вариант полностью отключить ревизии:

define( 'WP_POST_REVISIONS', false );

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

Почему лучше не делать это через тему

Иногда советуют прописать ограничение в functions.php. Технически это возможно, но для такой настройки это не лучший вариант: при смене темы правило исчезнет. wp-config.php надёжнее, потому что относится к самому сайту, а не к оформлению.

Если у вас несколько сайтов на одном хостинге, не копируйте настройку вслепую. Проверьте, что редактируете именно тот wp-config.php, который относится к нужной установке WordPress.

Как проверить, что ограничение работает

После изменения wp-config.php откройте любую запись и сохраните её несколько раз. Затем зайдите в редактор и посмотрите список ревизий. Их количество не должно расти бесконечно: старые версии будут вытесняться новыми, когда лимит достигнут.

Если ревизии продолжают множиться, проверьте три вещи:

  • строка define( 'WP_POST_REVISIONS', 5 ); действительно добавлена в wp-config.php;
  • она стоит до строки с комментарием That's all, stop editing!;
  • нет ли другого кода, который переопределяет настройку.

Иногда проблема не в WordPress, а в кэше или в том, что вы редактируете не тот файл на сервере. Если сайт работает через несколько окружений, например staging и production, настройку нужно внести в каждое из них отдельно.

Что делать, если нужен более мягкий контроль

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

Практичный подход такой: сначала удалить старые ревизии, затем поставить лимит 3–10 в зависимости от частоты редактирования. Для большинства обычных сайтов этого достаточно. Если тексты меняются редко, можно выбрать меньший лимит. Если статьи длинные и проходят много правок, лучше оставить больше версий.

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

После настройки не забывайте, что ревизии — это не ошибка WordPress, а штатная функция. Полезно не убрать их совсем, а держать под контролем. Тогда база остаётся компактнее, а у редакторов сохраняется возможность быстро вернуть предыдущий вариант текста.

×
Твой WordPress — твои правила!

Топовые темы и плагины со скидкой 20%.

Забрать выгодно ⋙