Если база данных WordPress разрастается из-за большого числа правок, обычно проблема не в самих записях и страницах, а в ревизиях. WordPress сохраняет историю изменений автоматически: при каждом существенном сохранении создаётся отдельная версия записи. Это удобно, когда нужно откатить неудачную правку, но на сайтах с активным редактированием ревизии быстро накапливаются.
Изменить их количество можно двумя основными способами: ограничить число сохраняемых ревизий или полностью отключить их для новых изменений. Выбор зависит от того, насколько важна история правок на вашем сайте и готовы ли вы пожертвовать удобством отката ради меньшего объёма базы.
Что именно меняет настройка ревизий
Ревизии в WordPress — это не кэш и не резервная копия сайта. Это отдельные записи в базе данных, которые хранят предыдущие состояния поста, страницы или другого типа контента. Когда вы редактируете материал и нажимаете «Обновить», WordPress может сохранить одну или несколько ревизий в зависимости от настроек и сценария редактирования.
Если ревизий слишком много, это обычно проявляется так:
- в таблице базы данных растёт число записей;
- админка может работать чуть тяжелее на очень больших сайтах;
- в редакторе становится длиннее список версий для сравнения и отката;
- при массовом редактировании контента база засоряется историей, которая уже не нужна.
При этом полное отключение ревизий — не универсально правильное решение. Для редакционного сайта, где тексты часто правят несколько человек, история изменений полезна. Для небольшого сайта-визитки или проекта, где контент обновляют редко, можно оставить 3–5 ревизий вместо полного архива.
Как ограничить число ревизий через wp-config.php
Самый прямой способ — задать константу WP_POST_REVISIONS в файле wp-config.php. Этот файл находится в корне установки WordPress и содержит базовые параметры сайта. Константу нужно добавлять до строки /* That's all, stop editing! Happy publishing. */, иначе WordPress её не увидит.
Перед изменением сделайте резервную копию wp-config.php. Ошибка в этом файле может привести к недоступности сайта, поэтому править его лучше аккуратно и через нормальный редактор кода, а не через случайный текстовый редактор с автозаменой.
Чтобы оставить, например, только 5 последних ревизий для каждой записи, добавьте строку:
define( 'WP_POST_REVISIONS', 5 );После этого WordPress будет хранить ограниченное число ревизий для новых сохранений. Старые ревизии, уже лежащие в базе, сами по себе не исчезнут — для их удаления понадобится отдельная очистка базы данных.
Если вы хотите разрешить только одну ревизию, можно поставить 1. На практике это уже почти отключение истории, но с сохранением минимального отката. Для большинства сайтов это слишком жёсткое ограничение, если контент редактируется вручную.
Когда этот вариант подходит
Ограничение числа ревизий удобно, если:
- на сайте много страниц и записей, которые регулярно правят;
- нужен баланс между историей изменений и размером базы;
- вы не хотите полностью отказываться от отката к предыдущей версии;
- на сайте работают редакторы, которым иногда нужен быстрый возврат к прошлому тексту.
Это самый безопасный вариант для рабочих сайтов, потому что он не убирает ревизии полностью, а только ограничивает их количество.
Как отключить ревизии полностью
Если история правок не нужна вообще, в wp-config.php можно отключить ревизии для новых изменений. Для этого используется значение false:
define( 'WP_POST_REVISIONS', false );После этого WordPress перестанет создавать ревизии для новых сохранений записей и страниц. Но здесь есть важный нюанс: уже существующие ревизии в базе останутся, пока вы их не удалите отдельно. То есть отключение не равно автоматической очистке базы.
На рабочем сайте я бы рекомендовал отключать ревизии только если вы понимаете последствия. Без истории правок сложнее откатить ошибку редактора, особенно если контент меняют несколько человек или правки вносятся в спешке.
Чем отключение отличается от ограничения
Если коротко: ограничение сохраняет запасной вариант, отключение убирает его почти полностью. Для большинства сайтов лучше сначала попробовать лимит в 3–5 ревизий, а не сразу выключать механизм целиком.
| Вариант | Что делает | Когда использовать |
|---|---|---|
WP_POST_REVISIONS = 3–5 | Хранит ограниченное число версий | Когда нужна история правок, но база разрастается |
WP_POST_REVISIONS = false | Не создаёт новые ревизии | Когда история изменений не нужна и вы готовы отказаться от отката |
Что делать со старыми ревизиями в базе данных
Изменение константы влияет только на новые сохранения. Если база уже раздута, старые ревизии нужно удалить отдельно. Здесь есть несколько подходов, и выбирать их стоит по размеру сайта и уровню риска.
Самый безопасный путь для обычного владельца сайта — использовать плагин для очистки базы, который умеет удалять ревизии. Перед очисткой обязательно сделайте резервную копию базы данных. Это не формальность: удалённые ревизии нельзя вернуть обычной отменой действия в админке.
Если сайт небольшой и вы уверенно работаете с базой, можно удалить ревизии через phpMyAdmin или другой инструмент управления MySQL/MariaDB. Но это уже более рискованный сценарий: одна неверная команда может затронуть не только ревизии, но и полезные данные. Без опыта лучше не делать это вручную на рабочем сайте.
После удаления старых ревизий имеет смысл проверить, что в редакторе остались только нужные версии, а размер таблиц базы начал уменьшаться. Полезно также посмотреть, не создаёт ли тема или плагин собственные записи, которые вы принимаете за ревизии.
Как проверить, что настройка сработала
Проверка простая и не требует специальных инструментов. Откройте любую запись или страницу, внесите небольшое изменение и сохраните её несколько раз. Затем в редакторе посмотрите блок ревизий или историю версий. Если лимит задан, старые версии должны перестать накапливаться бесконечно.
Есть и второй способ проверки: откройте базу данных и посмотрите, уменьшается ли число записей в таблице wp_posts для типа revision. Если вы только задали лимит, а старые ревизии уже были созданы раньше, их количество не уменьшится само по себе — это нормально.
Если после правки wp-config.php поведение не изменилось, проверьте три вещи:
- константа добавлена до строки с комментарием
That's all, stop editing!; - в файле нет синтаксической ошибки, лишней кавычки или пропущенной точки с запятой;
- вы редактируете именно тот
wp-config.php, который использует текущая установка WordPress.
Какие ошибки чаще всего мешают изменить ревизии
На практике проблемы обычно связаны не с самой настройкой, а с тем, как её применили.
Первая ошибка — попытка задать WP_POST_REVISIONS в теме или плагине. Это не место для такой настройки. Константа должна быть объявлена в wp-config.php, потому что WordPress читает её на раннем этапе загрузки.
Вторая ошибка — ожидание, что после отключения ревизий база сразу очистится. Нет, старые записи остаются, пока вы их не удалите отдельно.
Третья ошибка — слишком агрессивное отключение на редакционном сайте. Если несколько человек правят контент, отсутствие ревизий быстро превращается в проблему: исправить случайно удалённый фрагмент будет сложнее.
Четвёртая ошибка — правка wp-config.php без резервной копии. Это особенно опасно на рабочем сайте, где любая синтаксическая ошибка может временно уронить весь проект. Если не уверены в своих действиях, сначала сделайте копию файла и, по возможности, проверьте изменения на staging-копии.
Что выбрать на практике
Если задача звучит как «уменьшить разрастание базы, но не потерять удобство редактирования», обычно разумно начать с ограничения ревизий до 3–5. Это даёт нормальный запас для отката и не превращает базу в архив всех промежуточных сохранений.
Полное отключение имеет смысл только тогда, когда вы точно знаете, что история правок не нужна, либо контент почти не редактируется. Для большинства рабочих сайтов это слишком жёсткий вариант.
Если база уже сильно раздута, одной константы недостаточно. Сначала ограничьте или отключите новые ревизии, а затем отдельно очистите старые записи из базы. Только так вы получите реальный эффект, а не просто остановите дальнейший рост.
В итоге схема простая: задайте WP_POST_REVISIONS в wp-config.php, проверьте работу на тестовой записи и при необходимости удалите старые ревизии из базы. Это самый практичный способ контролировать историю правок без лишнего вреда для редактирования контента.