Управление ревизиями WordPress
Речь в сегодняшней статье пойдет про ревизии WordPress.
Ревизии WordPress — это автосохранения постов при редактировании. С одной стороны, это отличная функция: например, пишите вы статью не один час, как вдруг отключили электричество в квартире, или браузер завис, либо вкладку случайно закрыли… Когда у меня такое случилось первый раз, в голову сразу пришли мысли о том, как мне заново придется набирать текст, выравнивать изображения, в общем, делать все заново, но не тут-то было! WordPress автоматически сохранил весь мой пост! Не поверите, на сколько я был благодарен разработчикам за такую функцию.
Но есть и обратная сторона медали. По умолчанию, ревизии WordPress делаются каждые 60 секунд, и каждая ревизия записывается в базу данных. А теперь посчитайте, сколько у вас, в среднем, ревизий на пост и умножьте на количество постов в блоге. Дико много! Размер базы данных может на половину состоять из ревизий. У меня именно так и было. Посмотрите как уменьшился размер БД после удаления всех ревизий. В два раза!
Как отключить ревизии WordPress
Для отключения ревизий WordPress открываем файл wp-config.php, он лежит в корне вашего сайта.
Заходим в него и дописываем следующие строчки:
1 |
define( 'WP_POST_REVISIONS', 0 ); |
Таким образов мы полностью запретим создавать ревизии. Но жить без автосохранения совсем не надежно, поэтому я советую не запретить полностью, а сократить количество ревизий.
1 |
define( 'WP_POST_REVISIONS', 3 ); |
Число в скобках показывает, сколько ревизий разрешено делать для одной записи. Еще можно указать интервал автосохранения в секундах (по умолчанию 60).
1 |
define( 'AUTOSAVE_INTERVAL', 90 ); |
Удаляем ревизии WordPress из базы данных
Число ревизий мы ограничили, но все старые остались в базе. Предлагаю очистить вашу базу данных от ненужного хлама.
Для этого выполните следующее:
- Войдите в phpMyAdmin
- Выберите базу данных, которую использует ваш сайт
- Перейдите на вкладку SQL
- Введите в поле для SQL-запросов следующий код и нажмите «ОК»
1DELETE FROM wp_posts WHERE post_type = "revision";
После этого все ревизии будут удалены. Для наглядности советую сравнить размер вашей базы данных до удаления ревизии и после, результат можете написать в комментариях.
Это не единственный способ удаления ревизий, но самый простой, не раз меня выручавший. Можно управлять ревизиями установив плагин, но это даст дополнительную нагрузку на сервер.