Функционал истории изменений (ревизий) в WordPress: как работать с ним. Как отключить и удалить ревизии в 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? Отключите ревизии постов! Если интересно, читайте дальше.

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

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

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

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

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

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

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

Плагин Revision Control

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

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

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

Плагин Disable Post Revision

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

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

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

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

Ограничение количества редакций

По умолчанию WordPress хранит все редакции для записей и страниц. Это легко изменить с помощью фильтра wp_revisions_to_keep в вашем плагине, или с помощью константы WP_POST_REVISIONS в файле конфигурации wp-config.php . Например, если нам нужно сохранять только 5 последних версий записей и страниц, наш плагин будет выглядеть так:

/** * Plugin Name: My Revisions Config */ function my_revisions_to_keep($revisions) { return 5; } add_filter("wp_revisions_to_keep", "my_revisions_to_keep");

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

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

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

Define("WP_POST_REVISIONS", 5);

Как отключить редакции

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

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);

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

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

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

Перед тем, как удалить все редакции, необходимо удалить их мета-данные и таксономию, если они имеются. Сделать это можно с помощью запроса:

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%";

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

Советуем так же рассмотреть плагин Revision Control , который позволяет просматривать и удалять редакции в WordPress, а так же предоставляет интерфейс для установления ограничения на количество редакций для записей и страниц.

Если у вас возникли проблемы или вопросы при управлении редакциями в WordPress — оставьте комментарий и мы с радостью вам ответим.

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

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

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

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

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

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

define("WP_POST_REVISIONS", 0);

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