Как удалить редакции в wordpress. Как отключить, ограничить, удалить ревизии WordPress. Ограничиваем количество доступных ревизий

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

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

Что такое ревизии в WordPress

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

Ревизии в WordPress – это автоматическое резервное сохранение содержимого записи или страницы во избежание потери данных. Из них можно восстановить более ранние копии документов.

Многие, наверное, догадались о том, что ревизии WordPress служат для того, чтобы избежать потери данных. Они настраиваются в автоматическом режиме и делают резервную копию через определенный промежуток времени (каждые 60 секунд). Они складываются в базу данных (MySql - phpMyAdmin). Посмотреть список ревизий в WordPress можно чуть ниже окна правки записи (в режиме редактирования). Если прокрутить страницу, то чуть ниже их можно увидеть в окне «Редакции». Выглядят они следующим образом:

Наверное, у вас уже возник вопрос «Зачем удалять или отключать ревизии?», если они исполняют такую полезную роль. Вся проблема состоит в том, что копии записей, статей или постов очень загружают базу данных, в которую они заносятся. Это приводит не только к будущей проблеме ее редактирования и внесения изменений, но и к медленной загрузке страниц сайта. Советую прочитать пост « ». Поисковые системы стали обращать особое внимание на этот параметр. Так же, кстати, от этого напрямую зависит поведенческий фактор, показатель которого формируется из оценки поведения пользователей.

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

Как удалить ревизии в WordPress

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

Способ №1. Плагин Better Delete Revision

Мы будем использовать специально созданный плагин для удаления ревизий – Better Delete Revision. Скачайте его через адмику и установите. После активации в разделе настройки появится пункт с названием аналогичным имени плагина – это настройки.

Можете сразу оптимизировать базу данных или перейти во вкладку “Проверить записи ревизий” и уже из нее почистить свой блог от лишних копий документов.

Способ №2.Удаление прямо из базы данных

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

После выбора нужной базы, найдите вкладку «SQL», откройте ее так, чтобы перед вами появилось пустое поле.

В него вам нужно скопировать расположенный ниже код и нажать на кнопку «ОК». Этим действием вы сделаете SQL запрос на удаление ревизий из базы данных.

DELETE FROM wp_posts WHERE post_type = «revision»;

Должно получиться как на картинке:

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

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

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

Чтобы отключить ревизии, вам надо пройти на хостинг и отредактировать файл wp-config.php, который расположен в корневой папке. В него вставьте код с параметром:

Define("WP_POST_REVISIONS", 3);

Цифра устанавливает количество версий документа, которые будут храниться в базе данных. Ограничьте ее нужным количеством, например, единица будет означать, что у вас есть одна опубликованная и одна резервная (последняя правка).

После окончания внесения изменений нажмите на кнопку «Сохранить». Теперь ваша база не будет раздуваться как тесто на дрожжах при каждой правке статей.

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

По умолчанию 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 ненужных мне ревизии. Мета-данных и таксономии, связанных с ревизиями, создано не было.

Что такое ревизии wordpress и зачем они нужны?

Ревизии – это резервное сохранения записи (поста) в вордпресс, которое выполняется движком в автоматическом режиме.

Я думаю, вы видели, что во время публикации нового поста на блоге, в админке, при редактировании записи, кнопка «Опубликовать» время от времени становится не активной. Так вот, как раз таки в этот момент wordpress выполняет ревизию.

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

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

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

Здесь у вас может возникнуть вопрос: раз ревизии такие полезные, то почему же их нужно удалять? Поясняю.

Дело в том, что такие резервные копии постов, существенно раздувают базу данных, они, можно сказать, забивают её лишним мусором, от которого нужно избавляться. Ведь подумайте сами, когда вам нужно в запись внести много изменений, вы её редактируете, а в это время wordpress сохраняет одну за другой старые копии постов. Эти копии складывают в базу и увеличивают её размер. А ведь если так разобраться, то они нам, по сути не нужны, ну разве что последние 2-3 копии, а все остальные нет. Поэтому, естественно от таких вещей нужно избавляться, в этом случаи и база данных станет полегче и вордпресс будет шустрей работать.

Удаляем ревизии wordpress

Сейчас существует несколько способов удаления ревизий. Можно удалить резервные копии вручную, непосредственно в базе данных, введя специальный SQL запрос, а можно проделать данную операцию используя специализированные плагины. Все эти способы мы с вами сейчас рассмотрим.

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

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

После этого в верхней панели переходим во вкладку SQL и в появившееся поле вставляем вот эту запсь:

DELETE FROM wp_posts WHERE post_type = “revision”;

Запрос к базе данных

Если вы все сделаете правильно, перед вами появится надпись, которая будет сигнализировать об успешном удалении ревизий с базы. Сообщение об успешном выполнении SQL запроса

Второй способ – Используем плагин Revision Control . Здесь все просто, сначала скачиваем плагин, далее устанавливаете его. Поле установки в панели «Инструменты» у вас появится еще один раздел - «Revision Control », плагин очень прост и разобраться в нем я думаю у вас не составит не какого труда.

Вот и все, ревизии удалены!!!

Это два самых основных способов для очистки базы данных от ревизий. Есть, конечно же, еще несколько плагинов, которые позволяют выполнить данную манипуляцию (если конкретней, то это DelRevision и WP_Optimize ) но я думаю, что этих двух способов вам хватит с полна.

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

Для того чтобы запретить резервное сохранение данных вам необходимо произвести ряд действий, а именно:

Перейти на хостинг в файловый менеджер (или же связаться с хостингом через FTP клиент).

Найти на сервере папку wp-includes (как правило, она находится в корневой директории вашего сайта /ваш сайт/wp-includes.)

В папке wp-includes найти файл default-constants.php и открыть его в текстовом редакторе.

В данном файле найти надпись:

define(‘WP_POST_REVISIONS’, true);

И заменить её на:

define(‘WP_POST_REVISIONS’, false);

Всё, после этого ревизии wordpress будут отключены!

Всем привет, дорогие мои читатели сайт. Не так давно мы разбирали тему на 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 сохраняет редакции автоматически и при сохранении поста. В результате, не редкость когда бывает более 20 редакций поста. Умножьте это на количество сообщений на вашем сайте, и вы получите мегабайты дополнительных сообщений, хранящихся в базе данных.

Как избавиться от старых редакций

Некоторые люди не любят хранить все эти старые версии в своей базе данных. Они считают, что они замедляют их сайт. Это, однако, миф.

Разработчик WordPress Mike Little в комментарии на сайте WPBeginner ответил, "Запросы WordPress к базе данных не получают редакции, поэтому количество редакций не влияет на скорость выполнения запросов. Единственный раз когда редакции загружаются на страницу, это при редактирования отдельного поста. И это не влияет на скорость загрузки страниц вашего сайта. "

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

Если вы один из них, то один из трех плагинов приведенных ниже, поможет вам сделать это.

1. Better Delete Revision

Better Delete Revision удаляет старые версии постов, а также оптимизирует вашу базу данных.

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

Посмотрите на страницу настроек плагина, а также процесс удаления.

Плагин отличается от Better Delete Revision тем, что он не выполняет групповое удаление ваших редакций, однако, это даст вам две функции, которые Better Delete Revision не имеет.

Он позволяет сначала определить сколько редакций было сохранено.

И это позволяет вам удалять отдельные редакции на странице редактирования.

3. Revision Cleaner

Плагин Revision Cleaner позволяет каждому пользователю установить интервал времени для автоматического удаления его редакций. Это можно сделать на странице профиля пользователя.