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

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

Автосохранения
Функция, которая сохраняет каждые 60 сек (по умолчанию) редактируемые записи и страницы. Копия сохраняется отдельной записью в базе под специальным типом поля — ревизия. При этом она не перезаписывает текущую запись и\или страницу.
Для настройки автосохранения, надо в файл wp-config.php добавить строку и заменить 60 на свое число (в секундах), так вы сможете настроить период автосохранения.

Настройки ревизий
При автосохранение в базе создается большое количество ревизий одной и той же записи.

Для предотвращения этого добавьте в файл wp-config.php эту константу

где constant может принимать значения:

  1. true, -1: будет хранить все ревизии(по умолчанию)
  2. false, 0: не хранит ревизий, кроме одной на запись (это лучший выбор)
  3. (int) > 0: будет хранить выбранное количество ревизий, и перезаписывать старые ревизии автоматически.

Например, автосохранение 3 ревизий выглядит так:

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

Очистка базы WordPress
Внимание: Перед тем, как проводить какие-то работы с базой данных — сделайте полный бэкап базы! Это спасет вас от лишней нервотрепки!

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

Можно конечно в таблице wp_posts удалить все записи типа revision, таким запросом:

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

и этот SQL запрос для оптимизации таблиц WordPress:

Примечание: «wp_» — это префикс по умолчанию, так что поменяйте на свой.

В WordPress существует API функция для удаления ревизий, но без пользовательского интерфейса.

  • Никита

    Очень полезная статья. По всему инэту шарил, но нашел только тут такую полезную вещь. Сайт добавил в закладки, теперь постоянно пользуюсь этими командами. Спасибо Вам!

    • Vasya

      Тупая статья. Сайт конченный. Удалите его из интернета.