Wordpress удалить ревизии. Как отключить ревизии в WordPress? Зачем отключать ревизии в WordPress

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

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

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

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

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

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

define("WP_POST_REVISIONS", 0);

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

Большинство пользователей WordPress даже не подозревают о таком понятии, как “ревизии WordPress”, однако полезно представлять, что это такое, а в некоторых редких случаях желательно знать, как эти ревизии отключить.

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

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

Увидеть сформированные ревизии (в терминах русского WordPress) вы можете под окном редактирования.

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

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

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

Настройка ревизий

Как же удалить редакции Wordpress? Во-первых, можете указать в файле wp-config.php (находится в корневой папке вашего сайта) следующую инструкцию:

define("WP_POST_REVISIONS", 0);

что означает сохранение только трех последних ревизий.

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

1. Удаление прямо в базе

Заходим в phpMyAdmin затем в нужную базу данных. Затем в верхнем меню переходим на вкладку – «SQL». Появится окно, в котором нужно ввести SQL команду:

И жмем внизу кнопку – «OK» (или “Вперед”). Все, редакции удалены.

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

Что такое редакции и для чего они нужны

Редакции (ревизии) в Вордпресс — это резервные копии, которые сохраняются в базе данных при каждом обновлении поста или страницы. С одной стороны это удобно, поскольку Вы всегда можете восстановить резервную копию статьи за любое число, ведь Вордпресс сохраняет абсолютно все резервные копии. Но давайте представим, что у Вас высоконагруженный проект с ежедневной большой посещаемостью и огромным количеством контента. Что тогда? Тогда база данных может испытывать колоссальные нагрузки. Что мы можем предпринять? Если Вам все же нужны ревизии записей и страниц, то можно ограничить количество их сохранения, а можно полностью отключить и удалить их, тем самым снизив нагрузку.

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

Количество редакций в WordPress можно ограничить двумя способами:

  1. При помощи константы WP_POST_REVISIONS ;
  2. При помощи хука wp_revisions_to_keep (данный хук также позволяет выбрать тип записей, для которых устанавливается ограничение, будь то стандартные или произвольные типы записей).

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

Define("WP_POST_REVISIONS" , 1);

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

Как я уже писал выше, хук wp_revisions_to_keep дает больше возможностей. Ниже представлен пример кода ограничения количества сохранения редакций с комментариями, который нужно добавить в файл functions.php Вашей темы:

/** * Ограничение количества сохранения ревизий при помощи хука wp_revisions_to_keep * @param integer $count - количество ревизий * @param object $post - объект записи */ function limit_save_revisions_db($count, $post) { if ($post->post_type == "page") {//для стандартных страниц WordPress сохраняем 1 ревизию return 1; } elseif ($post->post_type == "post") {//для стандартных записей WordPress сохраняем 3 ревизии return 3; } elseif ($post->post_type == "reviews") {//для произвольного типа записей "Отзывы" не сохраняем ревизий return 0; } else {//для всех остальных сохраняем 3 ревизии return 3; } } add_action("wp_revisions_to_keep", "limit_save_revisions_db", 10, 2);

Полное отключение и удаление ревизий

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

/* * Полное отключений редакций * @param integer $count - количество ревизий */ function deactivate_revisions($count) { return 0; } add_filter("wp_revisions_to_keep", "deactivate_revisions");

Кроме того, после полного отключения редакций их желательно удалить из базы данных. Ведь до отключения они все равно сохранялись и теперь будут лежать там ненужным «мертвым» грузом. Чтобы это сделать, нужно перейти в PHPMyAdmin , найти нужную базу и открыть в ней таблицу wp_posts . Далее нажимаем на вкладку SQL и выполняем следующий запрос:

DELETE FROM `wp_posts` WHERE post_type = "revision";

Теперь нужно удалить все метаданные (таблица wp_postmeta) и таксономии (таблица wp_term_relationships) редакций. Для этого выполняем еще 2 запроса:

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

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

На этом все. Надеюсь статья была полезной для Вас. Всем удачи!!!

История изменений в 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

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

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

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

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