Компьютерная грамотность, помощь и ремонт

Как удалить ревизии wordpress? избавляемся от лишнего мусора!!! Как отключить, ограничить, удалить ревизии 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 делаются каждые 60 секунд, и каждая ревизия записывается в базу данных. А теперь посчитайте, сколько у вас, в среднем, ревизий на пост и умножьте на количество постов в блоге. Дико много! Размер базы данных может на половину состоять из ревизий. У меня именно так и было. Посмотрите как уменьшился размер БД после удаления всех ревизий. В два раза!

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

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

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

define("WP_POST_REVISIONS", 0);

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

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

Отключение ревизий в 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) вы можете под окном редактирования.

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

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

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

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

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

define("WP_POST_REVISIONS", 0);

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

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

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

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

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

Похожие публикации