Как отключить ревизии (редакции) WordPress. Редакции WordPress, ревизии и автосохранение Как же удалить все ревизии, редакции

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

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

История изменений в WordPress: что это такое

Знаете ли вы о том, что WordPress автоматически сохраняет все изменения, внесенные вами в посты. Вы можете отменить эти изменения и вернуться к более ранней версии в любой момент времени. Этот функционал называется ревизиями (версиями). Он был введен еще в WordPress 2.6.

Благодаря этой возможности WordPress будет сохранять пост в виде ревизии всякий раз, когда вы нажимаете на кнопку «Save as Draft» (Сохранить как черновик) либо во время каждого автоматического сохранения записи. Функция автоматического сохранения активируется каждые 60 секунд – это специальная ревизия, которая заменяется новыми автосохраняемыми версиями.

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

Как работать с историей изменений в WordPress

Как видно из представленного ниже скриншота, ревизии расположены в разделе Publish на экране редактирования записи. Вы также можете вывести ревизии в редакторе записей путем щелчка по Screen Options и выбора пункта Revisions.

Если вы перейдете по ссылке Browse, вы попадете на страницу Revisions. Здесь вы можете видеть изменения, относящиеся к каждой версии – для этого используйте слайдер в верхней части экрана. Вы также можете использовать кнопки Previous и Next. Имеется функционал для сравнения двух ревизий. В окне будет указано, что было добавлено, что осталось без изменений и что было удалено.

Что можно делать с ревизиями: можно либо восстановить ревизию, либо оставить запись как есть. Если вы хотите восстановить определенную ревизию, вы можете сделать это путем нажатия по кнопке Restore this revision. Ссылка Return to post editor позволит вам вернуться к своему посту, не внося никаких изменений.

Какие типы контента поддерживают ревизии?

История изменений WordPress работает для всех записей и страниц вашего сайта, а также для произвольных типов записей, таких как Portfolio и Testimonials (добавляются Jetpack).

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

$supports = array("title", "editor", "revisions");

Код для произвольных типов записей обычно располагается в файле functions.php. Поместите строку выше над строкой, которая начинается с register_post_type.

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

Включаем или полностью отключаем ревизии

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

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

Define("WP_POST_REVISIONS", true);

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

Define("WP_POST_REVISIONS", false);

Ограничиваем количество доступных ревизий

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

Define("WP_POST_REVISIONS", 5);

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

Управление ревизиями для каждой записи

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

Add_filter("wp_revisions_to_keep", "filter_function_name", 10, 2); function filter_function_name($num, $post) { return $num; }

Здесь мы передаем WP_Post объект, который представляет целевую запись и требуемое количество версий.

Плагины для управления ревизиями

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

Optimize Database After Deleting Revisions

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

  • Удаление ревизий для записей, страниц и произвольных типов записей.
  • Выбор количества сохраняемых ревизий.
  • Удаление спам-комментариев, неиспользуемых меток.
  • Удаление пингбэков и трэкбэков.
  • Оптимизация таблиц базы данных.
  • И т.д.

Плагин совместим с мультисайтами. Он поддерживает периодический запуск очистки.

WP Revisions Control

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

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

Он добавляет следующие поля к системе ревизий:

  • The Author
  • Post Date
  • Permalink
  • Post Status
  • Post Password
  • Comment Status
  • Ping Status
  • Post/Page Parent
  • Menu Order

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

Еще один плагин для управления ревизиями. Он позволяет ограничивать количество ревизий для любого произвольного типа записей.

Другие возможности:

  • Отключение ревизий.
  • Ограничение ревизий записей для всего сайта, для каждого типа записей, для каждого отдельного поста
  • Удаление ревизий в массовом порядке или индивидуально

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

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

Увидеть список доступных ревизий Вы можете в нижней части страницы редактирования записей:

Ревизии, редакции записи WordPress

Отключить, ограничить, удалить ревизии 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 происходит их автоматическое сохранение — делается резервная копия записи (ревизия). С помощью ревизий можно восстанавливать статью, перейдя на несколько шагов назад. Чтобы восстановить статью необходимо лишь выбрать требуемую ревизию.

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

Если вы пишете сообщение в редакторе, то 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 позволяет каждому пользователю установить интервал времени для автоматического удаления его редакций. Это можно сделать на странице профиля пользователя.

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

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

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

Зачем отключать ревизии в WordPress?

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

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

Если Вы счастливый обладатель многофункционального премиум-плагина , то Вам не придется искать каких-либо других решений. Одной из его функций является полное отключение создания ревизий. Для этого нужно перейти в админ-раздел Clearfy Pro и на вкладке Дополнительно активировать настройку Отключить ревизии полностью .

Другие способы

Плагин Revision Control

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

Итак, после его установки и активации следует перейти в админке Настройки -> Revisions.

Вы можете отключить создание ревизий для нужного типа записей. Для этого служат соответствующие поля: Posts (Записи) и Pages (Страницы). Для сохранения всех изменений нужно нажать кнопку Save Changes.

Плагин Disable Post Revision

Disable Post Revision является отдельным плагином, выполняющим только одну функцию – полное отключение создания копий контента. Для этого его нужно просто установить и активировать. Основным преимуществом плагина является отсутствие каких-либо страниц настроек. Он начинает выполнять свою работу сразу после активации.