БАЗА подписчиков за 1 месяц! (Секретная технология)minimazer

Как отключить и удалить редакции (ревизии) в WordPress


ревизии редакции постов

Всем привет, дорогие мои читатели In4wp.ru. Не так давно мы разбирали тему как ускорить блог на wordpress. Но вот буквально на днях мне пришлось добавить еще один способ к этой статье. Крайне эффективный, когда вы ведете своё блог длительное время при условии, что этой фишки вы не знали.

Эти так называемые ревизии или по-другому редакции существуют еще со старых версий cms wordpress.

Зачем нужны ревизии постов?

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

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

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

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

Вот вам пример из жизни. У меня в среднем на блоге было 4-5 ревизий каждой статьи. Представьте когда у вас будут сотни статей написано, а возможно, тысячи статей — удалив ревизии (редакциИ) постов — вы тем самым ускорите свой блог в 5 раз.

Читайте также:  Terms Descriptions: Как превратить слова в ссылки?

А что если у вас не 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, но этот способ не дает возможности разделить на типы записей.

Читайте также:  Как ускорить блог на WordPress. Полный набор методов ускорения.

define( 'WP_POST_REVISIONS', 3 );

к оглавлению ↑

Как отключить и/или удалить редакции в wordpress

Таким же макаром вы сможете отказаться от ревизий вообще. Нужно просто цифру 0 поставить в ограничениях.

function my_revisions_to_keep( $revisions ) {
    return ;
}
add_filter( 'wp_revisions_to_keep', 'my_revisions_to_keep' );

Или с помощью файла wp-config.php:

define( 'WP_POST_REVISIONS',  );

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

phpmyadmin для ревизий постов

Вводим логин и пароль.

revis2

Выбрали нужную нам базу данных и нажали кнопку SQL , которая находится сверху.

sql ревизии

И мы видим большое поле для того чтобы писать SQL запросы. Для всей БазыДанных.

панель для ревизий

Туда мы и вписываем все запросы по порядку.

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

А вот что я получил, используя последний запрос.

1000 ревизий

Посмотрите как после этого мой блог стал шустрее. Это же сказка просто!

Я уверен, что тоже самое есть и у вас! Проверьте и отпишите мне потом об этом.

к оглавлению ↑

Плагин для работы с редакциями постов

Могу посоветовать еще плагин Revision Control, он позволяет сделать тоже самое что я описал, только в более комфортном для вас режиме. Прямо в админке.

Пользуясь случаем, хочу объявить о том, что у меня есть БЕСПЛАТНЫЙ курс по созданию блога с нуля — ПОЛУЧИТЬ КУРС. Помогаю новичкам в развитии.

Если у вас все еще остались вопросы — задавайте, я буду рад вам помочь. На этом пока всё. Спасибо за внимание.

С уважением, Тумилович Денис.

Понравилась статья? Расскажи друзьям:


Мой подарок подписчикам

Подписывайтесь на новости блога и получите подарок - книгу "Как заработать 1000$ в первый месяц". В ней я рассказал свои наблюдения исходя из своего опыта. Я выделил всего ТРИ метода для заработка.

Добавить комментарий

Такой e-mail уже зарегистрирован. Воспользуйтесь формой входа или введите другой.

Вы ввели некорректные логин или пароль

Извините, для комментирования необходимо войти.

15 комментариев

по хронологии
по рейтингу сначала новые по хронологии

Эти самые ревизии ужасно забивают базу данных. У меня на блоге не так много записей а база данных уже почти 9 мегабайт. Ужас просто! Нужно срочно принимать меры и отключать ревизии

Кстати, если у вас в базе данных нестандартный префик (т.е. не wp_), будет выдавать ошибку.Чтобы все было хорошо, меняйте везде WP_ на свой, который прописан в настройках или придуман вами

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

Денис, я попробую через плагин, посмотрю что получится, а в плагине есть какие настройки??

Автор

С плагином знаком только по наслышке. Буду рад если вы более детально распишите как он работает. Сам я руками через базу всё убирал. Если вам нужно помощь в этом деле - обращайтесь.

Денис, плагин установил настройки простые выбрал сохранять количество копий 2 . Завтра буду писать статью посмотрю сколько сохраненных копий будет,

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

Я для чистки использую плагин WP Clean Up, когда надо включаю, потом выключаю.
А можно еще отключить HeartBeat API, отключив функцию автосохранения.

Так я не пойму, ревизии это хорошо или плохо?

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

Сергей

читайте коммент ниже от Александр

Сергей

их нужно удалять ради экономии дискового пространства на сервере или же ограничить их количество до минимума.

Сергей

ну конечно удалять

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

Автор

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