При создании, редактировании и сохранении статей и их черновиков в WordPress по умолчанию автоматически создаются резервные копии записей, обычно именуемые как Pевизии или Редакции (revisions).
Сохранение ревизий дело конечно полезное, так как например при ошибках в форматировании материала, сбоях вашего компьютера или сервера вам предоставляется возможность восстановить любую из предыдущих версий вашей записи. Но функционал сохранения ревизий имеет и отрицательную сторону.
Ведь все резервные копии (ревизии, редакции) сохраняются в базе данных вашего блога, в таблице wp_posts. И если у вас создано очень много записей, и при этом они часто редактировались, то размер базы данных окажется уж слишком большим. Кроме этого замедлится выполнение запросов к базе данных.
Увидеть список доступных ревизий Вы можете в нижней части страницы редактирования записей:
Отключить, ограничить, удалить ревизии WordPress оказывается совсем не сложно.
Давайте все разберем по порядку на примере WordPress 3.3.1.
Но только не забудьте перед внесением модификаций создать резервную копию базы данных!
Отключение ревизии в WordPress
Для того, чтобы отключить создание ревизий (редакций), нужно добавить одну строчку в файл wp-config.php
define('WP_POST_REVISIONS', 0);
или:
define('WP_POST_REVISIONS', false);
Есть еще и другой вариант отключения ревизий — изменить одно из значений с «true» на «0» или «false» в функции wp_functionality_constants(), которая находится в файле /wp-includes/default-constants.php
function wp_functionality_constants( ) { ... if ( !defined('WP_POST_REVISIONS') ) define('WP_POST_REVISIONS', false); ...
Ограничить количество ревизий в WordPress
Для того, чтобы ограничить количество ревизий (редакций), нужно добавить одну строчку в файл wp-config.php, как было при отключении ревизий, но вместо значения «0» или «false» указать целое число:
define('WP_POST_REVISIONS', 3);
В этом случае будет создаваться максимум 3 ревизии на одну статью, плюс одна копия «Автосохранение».
Заметка на память:
Внесение выше указанных изменений сразу не уменьшит количество ревизий, которые уже существуют в базе данных. Но изменения вступят в силу при обновлении уже существующих записей, причем по отдельности. Они также будут учтены при создании новых записей. Еще стоит учесть, что в режиме редактирования кроме ревизий в базе данных каждые 60 секунд будет записываться одна единственная копия записи как «Автосохранение».
Удалить все ревизии WordPress из базы данных
Если ваш блог существует уже давно и в нем много записей, то не помешает оптимизировать его базу данных, удалив ранее созданные ревизии (редакции), и тем самым уменьшить размер таблицы wp_posts.
Внимание! Не забудьте перед удалением всех ревизий создать резервную копию базы данных! Иначе восстановить удаленные ревизии уже будет не возможно.
Итак, нам понадобится выполнить несколько действий:
1. Войдите в панель управления базами данных, например в phpMyAdmin;
2. Выберите по имени базу данных, которая используется вашим блогом;
3. Кликните по кнопке (или закладке) с надписью «SQL» (обычно она находится вверху страницы);
4. В поле для SQL-запросов введите этот запрос:
DELETE FROM wp_posts WHERE post_type = "revision";
5. Нажмите кнопку «Ok», чтобы выполнить запрос;
Вот и все. Теперь база данных вашего блога, а конкретнее таблица wp_posts, намного уменьшилась в размере.
Напоследок хочу сказать, что приведенный выше пример удаления ревизий (редакций) является самым простым и не гибким. Возможно Вы захотите удалить не все ревизии, а выборочно, например оставив в каждой записи по три последних редакции. В таком случае придется либо выполнить более совершенный запрос в базе данных, либо воспользоваться специальным плагином. Благо плагинов для управлением ревизиями и базами данных существует предостаточно.
Метки: WordPress, ревизии, редакции
Хорошая статья. Я до сих пор и не знал, что можно весь редакционный хлам из базы данных удалить так просто одной командой, все хотел подобрать плагин какой нибудь. Но теперь и не буду плагин ставить для ревизий, а то итак уже очень много плагинов наставил.
извиняюсь, я там неглядя английскими написал, хотел написать «одной командой» :(
Ничего страшного, я уже исправил :)
Плагин wp-optimize, если не ошибся в обозначении, тоже помогает, но ваш вариант получше будет.
Да, есть такой, WP-Optimize. Но кроме него еще и другие есть плагины, которые помогают настроить управление ревизиями, почистить базу данных и т.д. Я сам лично просто предпочитаю не использовать много плагинов, поэтому все, что не слишком сложно и что не приходится делать слишком часто, делаю вручную :)
Отлично! Спасибо, удалил 287 ревизий!
Поздравляю! :)
Мне на днях один чел отписывался, что мол удалил около 2000 ревизий и потом испугался, когда увидел, что на сервере в базе данных места много стало, подумав, что базу грохнули, а потом понял, что это за два года у него столько хлама накопилось :)
Классная статья! )) Ревизии удалены.
Отлично узнавать новое и нужное новичку. Автору СПС