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

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

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

Что именно делает ревизии и почему они копятся

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

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

Когда ревизии лучше не отключать полностью

Перед изменением настройки стоит честно оценить, как работает сайт. Полное отключение ревизий не подходит, если:

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

В таких случаях безопаснее не отключать ревизии полностью, а ограничить их число. Тогда WordPress будет хранить, например, последние 3–5 версий вместо бесконечного списка.

Как отключить ревизии в WordPress через wp-config.php

Самый прямой способ — добавить константу в файл wp-config.php. Этот вариант работает на уровне WordPress и не требует плагинов. Но перед правкой сделайте резервную копию файла и базы данных: ошибка в wp-config.php может временно сломать сайт.

Если нужно полностью отключить ревизии, добавьте строку перед комментарием /* That's all, stop editing! Happy publishing. */:

define( 'WP_POST_REVISIONS', false );

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

Если вместо полного отключения нужен лимит, укажите число:

define( 'WP_POST_REVISIONS', 5 );

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

Что делать с уже накопленными ревизиями

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

Самый безопасный путь — сначала сделать полную резервную копию сайта, а затем удалить лишние ревизии одним из проверенных способов:

  • через плагин для очистки базы данных;
  • через SQL-запрос в phpMyAdmin или другом инструменте работы с базой;
  • через WP-CLI, если он доступен на хостинге.

Если вы не уверены в своих действиях, лучше использовать плагин с понятным интерфейсом и предварительным просмотром удаляемых данных. Для очистки ревизий и других служебных записей часто используют инструменты вроде Clearfy Pro, если он уже стоит на сайте и вы хотите совместить несколько задач обслуживания в одном месте.

Удаление ревизий через SQL

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

DELETE FROM wp_posts WHERE post_type = 'revision';

Запрос удалит все ревизии из таблицы записей. Если на сайте есть нестандартный префикс, замените wp_ на свой. После удаления имеет смысл оптимизировать таблицу базы данных, но делать это нужно только после резервной копии и понимания последствий.

Удаление ревизий через WP-CLI

Если на хостинге доступен WP-CLI, можно удалить ревизии командой:

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

Команда сначала получает список ID всех ревизий, а затем удаляет их без помещения в корзину. Это удобно, но тоже требует осторожности: после выполнения восстановить удалённые ревизии из админки уже не получится.

Как проверить, что ревизии действительно отключены

После изменения wp-config.php откройте любую запись в редакторе, внесите небольшое изменение и сохраните её несколько раз. Затем проверьте боковую панель редактора или блок «Ревизии», если он отображается в вашей версии WordPress и используемом редакторе. Если лимит или отключение сработали, число новых версий перестанет расти бесконечно.

Ещё один практический способ — посмотреть таблицу wp_posts в базе данных и отфильтровать записи с типом revision. Если после новых сохранений их количество не увеличивается, настройка работает. Но помните: автосохранения и ревизии — не одно и то же. Автосохранение может продолжать работать как механизм защиты от потери текста в редакторе, даже если ревизии ограничены.

Какие риски появляются после отключения ревизий

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

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

Если задача — не «обнулить» базу, а сделать сайт аккуратнее и легче в поддержке, обычно лучше ограничить ревизии, а не выключать их полностью. Для большинства проектов это даёт нужный эффект без лишнего риска для редакторов.

Что выбрать на практике

Если сайт простой, контент почти не редактируется и вам важнее порядок в базе, чем история правок, можно отключить ревизии полностью через wp-config.php. Если сайт живой, с регулярными правками и несколькими участниками, разумнее поставить лимит на 3–5 ревизий. Такой вариант обычно закрывает проблему разрастания базы и при этом оставляет запасной путь для отката.

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

⭐⭐⭐⭐⭐