Как удалить ревизии wordpress? избавляемся от лишнего мусора!!! Как отключить и удалить все редакции в WordPress Wordpress отключить редакции

Речь в сегодняшней статье пойдет про ревизии WordPress .

Ревизии WordPress — это автосохранения постов при редактировании. С одной стороны, это отличная функция: например, пишите вы статью не один час, как вдруг отключили электричество в квартире, или браузер завис, либо вкладку случайно закрыли… Когда у меня такое случилось первый раз, в голову сразу пришли мысли о том, как мне заново придется набирать текст, выравнивать изображения, в общем, делать все заново, но не тут-то было! WordPress автоматически сохранил весь мой пост! Не поверите, на сколько я был благодарен разработчикам за такую функцию.

Но есть и обратная сторона медали. По умолчанию, ревизии WordPress делаются каждые 60 секунд, и каждая ревизия записывается в базу данных. А теперь посчитайте, сколько у вас, в среднем, ревизий на пост и умножьте на количество постов в блоге. Дико много! Размер базы данных может на половину состоять из ревизий. У меня именно так и было. Посмотрите как уменьшился размер БД после удаления всех ревизий. В два раза!

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

Для отключения ревизий WordPress открываем файл wp-config.php, он лежит в корне вашего сайта.

Заходим в него и дописываем следующие строчки:

define("WP_POST_REVISIONS", 0);

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

Всем привет, дорогие мои читатели сайт. Не так давно мы разбирали тему на wordpress. Но вот буквально на днях мне пришлось добавить еще один способ к этой статье. Крайне эффективный, когда вы ведете своё блог длительное время при условии, что этой фишки вы не знали.

Эти так называемые ревизии или по-другому редакции существуют еще со старых версий cms wordpress.

Зачем нужны ревизии постов?

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

Получается так, что в процессе написания статьи, когда вы нажимаете кнопку “Сохранить” – у вас создается копия вашей статьи с вашими изменениями. И в любой момент вы можете посмотреть список этих копий и выбрать наиболее подходящую и восстановить.

За всю мою практику мне приходилось восстанавливать копию из подобных резервов лишь однажды. Но тем не менее.

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

Вот вам пример из жизни. У меня в среднем на блоге было 4-5 ревизий каждой статьи. Представьте когда у вас будут сотни статей написано, а возможно, тысячи статей – удалив ревизии (редакциИ) постов – вы тем самым ускорите свой блог в 5 раз.

А что если у вас не 5 редакций, а 10 к каждому посту? Кстати, сколько у вас, если не секрет? Напишите об этом в комментариях пжлст.

Кстати, самое интересно, что когда вы даже не нажимаете на кнопку “Сохранить” – у вас ревизии постов создаются автоматически. Это называется автосохранение.

Как можно ограничить количество редакций постов?

Мы уже знаем, что все редакции хранятся в базе данных. Чтобы их количество изменить, нам пригодится стандартный “фильтр”, который называется так wp_revisions_to_keep , или с помощью директивы WP_POST_REVISIONS в файле wp-config.php .

Кстати, у меня, почему-то директива в файле wp-config – не сработала. Напишите, у кого она работает в новых версиях WordPress ?

Итак, допустим, мы хотим оставить возможность сохранения ревизий, но оставить, скажем, только 3шт. Для этого нам нужно написать следующее:

Function my_revisions_to_keep($revisions) { return 3; } add_filter("wp_revisions_to_keep", "my_revisions_to_keep");

С помощью wp_revisions_to_keep можно еще ограничивать количество копий в разных типах постов. Точнее в одном типе – одно количество ревизий, в другом – другое.

Ну вот, например, допустим, вам нужно 5 ревизий для страниц и 3 ревизии для статей (постов) и остальных типов записей.

Function my_revisions_to_keep($revisions, $post) { if ("page" == $post->post_type) return 5; else return 3; } add_filter("wp_revisions_to_keep", "my_revisions_to_keep", 5, 2);

Можете еще попробовать использовать WP_POST_REVISIONS в файле wp-config.php , но этот способ не дает возможности разделить на типы записей.

define("WP_POST_REVISIONS", 3);

Как отключить и/или удалить редакции в wordpress

Таким же макаром вы сможете отказаться от ревизий вообще. Нужно просто цифру 0 поставить в ограничениях.

Function my_revisions_to_keep($revisions) { return 0; } add_filter("wp_revisions_to_keep", "my_revisions_to_keep");

Или с помощью файла wp-config.php :

Define("WP_POST_REVISIONS", 0);

Самое главное. Отключение ревизий – никак не повлияет на их существование (уже существующих). т.е. если у вас было к каждой статье по 3-5 ревизий и вы отключили ревизий – старые копии постов все равно останутся. Их нужно удалять руками через БД.

Как же удалить все ревизии, редакции

Итак, мы отключили редакции. МЫ уже знаем что просто отключить редакции – мало. Надо их вырвать с корнем, удалить в ручную через MySQL.

Начнем, пожалуй. Но, перед тем как что-то удалять – сделайте Бекап. Лучше сделать бекап всего сайта.

DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = "revision" AND post_name LIKE "%revision%");

Нечто похожее делаем для таксономий

DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = "revision" AND post_name LIKE "%revision%");

Ну и естественно, удаляем сами редакции (ревизии).

DELETE FROM wp_posts WHERE post_type = "revision" AND post_name LIKE "%revision%";

Этот запрос в MySQL удалит вообще все ревизии что есть в вашей базе. Кроме автосохранений.

Автосохранение – тоже считается ревизией, но они не удаляются и не отключаются!! Поэтому чтобы их было как можно меньше – пишите тексты заранее в ворде, а потом просто вставляйте в админку!

Небольшое напоминание о том как работать с MySQL

Если вдруг забыли.

Я работаю с хостингом adminvps , я даже рассказывал почему именно с ним – в этой статье. Так вот, я буду показывать всё на нем.

Заходим в phpMyAdmin в вашей контрольной панели управления хостингом.

Вводим логин и пароль.

Выбрали нужную нам базу данных и нажали кнопку SQL , которая находится сверху.

И мы видим большое поле для того чтобы писать SQL запросы. Для всей БазыДанных.

Туда мы и вписываем все запросы по порядку.

Не беспокойтесь если увидите нулевые значения, значит вы просто не использовали левых типов записей или таксономий.

А вот что я получил, используя последний запрос.

Посмотрите как после этого мой блог стал шустрее. Это же сказка просто!

Я уверен, что тоже самое есть и у вас! Проверьте и отпишите мне потом об этом.

Плагин для работы с редакциями постов

Могу посоветовать еще плагин Revision Control, он позволяет сделать тоже самое что я описал, только в более комфортном для вас режиме. Прямо в админке.

Если у вас все еще остались вопросы – задавайте, я буду рад вам помочь. На этом пока всё. Спасибо за внимание.

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

Однако, ревизии – это не всегда хорошо. Для хранение резервных копий записей и статей требуются дополнительные ресурсы сервера. Ревизии засоряют базу данных, поэтому стоит подумать нужны ли они вообще. Часто ли мы при редактировании статей в WordPress пользуетесь ревизиями? Если нет, то их можно отключить.

Отключение ревизий в WordPress

Для того, чтобы отключить ревизии в WordPress до версии 3.0.3 необходимо перейти к файлу конфигурации «config.php» и открыть его с помощью текстового редактора, например, Notepad++. После этого необходимо найти строку:

define("WP_POST_REVISIONS",0);

В случае, если у нас WordPress версии 3.0.3 или более новой — отключение ревизий происходит в файле «default-constants.php» (находится в папке «wp-includes»). Ищем строку:

define("WP_POST_REVISIONS", true);

После этого меняем true на false, как показано ниже:

define("WP_POST_REVISIONS", false);

Сохраняем файл «default-constants.php». Таким образом, ревизии будут отключены.

Все созданные ревизии в WordPress можно легко удалить. Для того, чтобы удалить старые ревизии необходимо зайти phpMyAdmin и выбрать базу данных. Затем нужно перейти на вкладку SQL и в открывшемся окне в поле ввода вставить строку:

DELETE FROM wp_posts WHERE post_type = "revision";

Пример показан на рисунке:

Затем нажимаем кнопку «ОК» и все сохраненные ранее ревизии будут удалены. Такой способ удаления ревизий подходит для всех версий движка WordPress.

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

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

Отключение или ограничение ревизий

Сохранение ревизий записей и страниц в базе данных сайта WordPress можно отключить или ограничить их количество. Для этого необходимо открыть файл wp-config.php и, чтобы отключить сохранение ревизий полностью, добавить строку:

Define("WP_POST_REVISIONS", false);

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

Define("WP_POST_REVISIONS", 3);

Число 0 в этом выражении будет соответствовать ключевому слову false .

Обратите внимание на то, что добавляемая строка должна быть размещена в файле wp-config.php после строки:

Define("WP_DEBUG", false);

и перед строкой:

У меня добавлено так:

Define("WP_DEBUG", false); /* Отмена или ограничение количества редакций */ define("WP_POST_REVISIONS", false); /* Это всё, дальше не редактируем. Успехов! */

Удаление всех старых редакций

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

Перед удалением всех ревизий из базы данных сайта WordPress, необходимо удалить сначала их мета-данные и таксономию, если они имеются. Скопируйте и вставьте в поле ввода по очереди следующие три команды и нажмите кнопку «Вперёд». Если при установке WordPress вы указали для таблиц базы данных префикс отличный от «wp_», замените в командах ниже «wp_» на свой префикс.

Удаление мета-данных

DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = "revision" AND post_name LIKE "%revision%");

и нажимаем кнопку «Вперёд».

Удалении таксономии

копируем и вставляем в поле ввода SQL-запроса следующую строку:

DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = "revision" AND post_name LIKE "%revision%");

и нажимаем кнопку «Вперёд».

Удаление всех ревизий

копируем и вставляем в поле ввода SQL-запроса следующую строку:

DELETE FROM wp_posts WHERE post_type = "revision" AND post_name LIKE "%revision%";

и нажимаем кнопку «Вперёд».

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

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

  • мета-данные - удалено 0 строк;
  • таксономия - удалено 0 строк;
  • ревизии - удалено 33 строки.

При редактировании одной записи, которое еще не закончено, было создано 33 ненужных мне ревизии. Мета-данных и таксономии, связанных с ревизиями, создано не было.