Всем привет! Сегодня на SEO-Mayak.com в рамках рубрики «Настройки WopdPress» я буду рассказывать как удалить, отключить или ограничить ревизии записей в WordPress.
Я думаю прежде, чем начать писать о ревизии записей, мне придется объяснить — что такое хаки?
Какой все же богатый русский язык! В нем одно слово может иметь множество значений , например слово «Дорога» или «Звезда».
Если посмотреть разные словари, то слово «Хаки» означает: цвет грязи или земли, ткань затишного цвета для армейского обмундирования, естественное углубление на глинистых грунтах.
Но также «Хаки» можно расценить, как множественное число от слова «Хак», которое имеет уже совершенно другие толкования.
Но какое же отношение хак имеет к данное статье? Самое прямое. С помощью хаков мы будем изменять, настраивать под себя, некоторые функции WordPress.
Дело в том, что наш любимый CMS WordPress имеет массу «недоделок» или наоборот лишних функций, от которых лучше избавиться в силу разных причин. Теперь попробую объяснить, что такое хаки свои словами.
Нетрудно проследить связь между словом «Хак» и Хакер», поэтому хаки могут быть, как полезные, так и вредные, т.е вирусами.
Вредные хаки нас не интересуют, а говорить мы с вами будем об исключительно полезных хаках и в рамках этой статьи мы научимся с помощью полезных хаков удалять, отключать или ограничивать ревизии записей WordPress.
Почему надо отключать ревизии записей в WordPress
Теперь настал черед объяснить, что такое ревизии записей. WordPress замечательный движок и заботясь, чтобы ненароком наши черновики вдруг никуда не пропали, например при отключении электроэнергии или при других катаклизмах техногенного или бытового характера, он автоматически сохраняет копии наших записей.
Ревизии записей- это и есть те сохраненные копии о которых шла речь выше. Только вот почему они называются ревизиями,? Единственное объяснение я нашел в самой функции:
WP_POST_REVISIONS
Вроде бы дело нужное, но за все время моей деятельности в интернете, я так и ни разу не воспользовался возможностью восстановления черновиков. Наверное потому, что прежде чем закрыть страницу с недописанной статьей я обязательно нажимаю кнопочку «Сохранить».
Но зачем же отключать столь полезную функцию? Дело в том, что при сохранении ревизий все резервные редакции записей (копии) отправляются на хранение в базу данных блога в таблицу wp-posts.
Для наглядного примера покажу на скриншоте количество сохраненных редакций моей статьи «Релевантность страниц. Определение релевантности текста»
Вы представляете, сколько пространства занимают эти ревизии или редакции записей? С учетом того, что в будущем возможно я буду еще не раз редактировать статью, то этот список может увеличится до немыслимых размеров.
Можно даже рассчитать вес текста. Каждый символ (буква или тире и т.д) весит 1 байт, в каждом килобайте — 1024 байта.
Я не поленился и подсчитал, что данная статья состоит из 9321 символов. Переводим в килобайты и получается 9.1 kb. Теперь умножаем на количество сохраненных ревизий записей (на данный момент я насчитал 35 сохранений) и получаем 318.5 килобайт. И если бы мне опять понадобилось редактировать эту статью, то число бы еще увеличилось.
А теперь умножим число 318.5 на количество статей и получим примерную цифру, но уже в мегабайтах, которая сидит в базе данных блога, тем самым значительно утяжеляя его, влияет на скорость загрузки и другие параметры. Вот такая арифметика получается!
Но при проведении нехитрых вычислений я не брал в расчет изображения, так как это отдельная тема, которую я подробно разбирал в статье «Как загружать картинки на сайт. Оптимизация изображений».
Вот именно для осуществления подобных действий и предназначены полезные хаки (коды), о которых шла речь выше.
Как отключить функцию сохранения ревизий в базе данных
Для отключения ревизий (сохранение редакций) в WordPress находим файл wp-config.php, который расположен в корне Вашего блога. Там где находятся папки wp-admin, wp-content и wp-includes. Открываем его с помощью текстового редактора Notepad++, и чтобы Вам было легче, в самом конце файла ищем такую сточку:
define('WP_DEBUG', false);
После нее вставляем следующий код:
define('WP_POST_REVISIONS', false);
Или можно прописать так:
define('WP_POST_REVISIONS', 0);
Есть еще один вариант кода, с помощью которого можно отключить ревизии, но для этого надо зайти в папку wp-includes и открыть для редактирования файл default-constants.php. В районе 259 строки ищем такую функцию:
function wp_functionality_constants(){
Чуть ниже будут такие две строчки:
if(!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', true);
Меняем значение «true» на «false»:
if (!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', false);
Или «true» на «0»:
if(!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 0);
Вот и все, функция сохранения ревизий наших записей отключена.
Но многие могут захотеть оставить себе, так сказать, страховочный вариант на случай непредвиденных обстоятельств. Ну что же, сделать это несложно.
Как ограничить количество сохранений ревизий в базе данных
Для ограничения ревизий записей нам понадобиться знакомый файл wp-config.php, в который надо вставить тот же код, что и при отключении сохранений ревизий, но вместо значений «false» или «0», надо будет прописать число, которое будет обозначать желаемое количество сохранений ревизий. Например:
define('WP_POST_REVISIONS', 5);
Или значения в файле default-constants.php
if(!defined('WP_POST_REVISIONS')) define('WP_POST_REVISIONS', 5);
Но что же делать тем, кто поздно узнал о вышесказанных возможностях? Действительно, если на блоге, к примеру уже 200 статей, то таблица wp-posts базы данных просто «завалена» сохраненными ревизиями.
Что поделать, наверное с этим придется смириться! Шутка!
Как удалить все сохраненные ранее ревизии записей из базы данных
Для удаления всех сохраненных ранее ревизий наших записей предеться предпринять немного другие действия, а именно попасть непосредственно в свою базу данных, которая находится на Вашем хостинге.
Кто не знает где находится ваша база данных, то Ваш путь примерно должен выглядеть так: Хостинг -> Панель управления -> Базы данных MySQL -> База данных Вашего блога.
В самой безе данных нас интересует вкладка «SQL»
На открывшийся странице вы увидите форму для ввода запросов:
В поля для ввода запросов вставляем следующее:
DELETE FROM wp_posts WHERE post_type = "revision";
Нажимаем «ОК» и смотрим на сколько килобайт или мегабайт «похудела» таблица wp-posts.
В будущем я продолжу публиковать статьи с полезными хаками и поэтому советую обязательно подписаться на обновления блога
До встречи!
С уважением, Виталий Кириллов
Да, копии статей страшно засоряют хостинг. От них нужно избавляться.
Анна, обязательно надо, существенное облегчение наступает 🙂
Надо будет попробовать), спасибо.
Пожалуйста Sasha!
Да, учитывая то, сколько раз мы корректируем… надо будет попробовать выполнить все по вашему уроку. Спасибо большое.
Алла, рад видеть Вас на блоге! Подчистить базу данных будет не лишнем!
Не знала что можно отключить ревизии записей,нужно попробовать.
Здравствуйте Марина! Их не можно, а нужно отключать, ради экономии дискового пространства на сервере.
как пишут на демотиваторах — «школоте не понять». боюсь, что мне этого тоже не понять!
Каждый раз, глядя на список сохраненных ревизий, думала, как же их удалить? Спасибо, что научили.
Пожалуйста Людмила, рад видеть Вас на блоге!
Сколько всего нужно сделать на своем сайте! Или сама делай или найми специалистов. Сама я все уже не успеваю.
Все успеть очень тяжело и найм специалистов — это выход, если средства позволяют.
мне удобнее регулярно удалять чем совсем отключить, иногда восстанавливаю резервные копии
Лана, рад видеть Вас на блоге! Конечно, если удобней так, то лучше так и делайте.
очень хорошо все объяснено, у меня бы сейчас затруднений не вызвало избавить сайт от ненужных ревизий, но успела сделать это еще на момент становления блога почти год назад, весной. Когда статей было мало еще. Чему очень рада, места на сайте стало больше. так что чем моложе блог, тем лучше. Знаю еще плагин ставить рекомендуют, но зачем когда можно хаки применить?!
Это хорошо Наталья, что ты вовремя все сделала!
Я в свое время очень была озабочена этими ревизиями. Старалась меньше сохранять сама во время написания статей. Сейчас поставила плагин, который все подчищает и оставляет всего по 1 копии статьи. А с кодами так и не смогла разобраться.
Здравствуйте Наталья! Со временем Вы придете к тому, что Вам захочется, как можно меньше использовать плагинов, чтобы сократить время загрузки страниц.
Виталий, я это знаю прекрасно. Просто выбора нет. Ну не могу я поставить так коды, что бы они работали, сколько ни бьюсь. То ли не туда пихаю, то ли не то… А что остается делать, если нужно сделать, а не выходит по другому ?!
Наталья, есть два выхода из Вашей ситуации:
1. Пройти курсы по основам HTML и CSS (напишите мне в личку и я вам дам бесплатную ссылку)
2. Пользоваться услугами специалистов
Я в скором времени, также буду оказывать платные услуги за весьма умеренную плату:)
Пользоваться услугами мне не очень хочется. Ну в таких простых вещах. Надеюсь, что смогу разобраться. Не много не поняла про личку. На форуме, там понятно- личное сообщение. А на сайте? В комментах есть же мой мэйл. Если не сложно киньте, плз, туда.
Наталья на сайте есть форма обратной связи, где Вы возможно захотите использовать другой мэйл. Отсылаю вам ссылочку.
У меня шаблон настолько деликатный, что очень мало плагинов с ним дружит. Поэтому хаки как раз для меня! Спасибо за коды, попробую «пошаманить»
Попробуйте Татьяна, можете даже написать о результатах в комментах!
Здравствуйте Виталий! Вот так ХАКИ!!!!!
Но уж очень все сложно….С плагином — то конечно проще.
А так высокие материи — я ще не доросла.
Хотя понимаю что с моими редакциями статей — копий там великое множество…..
буду знать где искать — ведь это тоже важно, когда нужно.
С ув. Т.С
Здравствуйте Татьяна, рад видеть вас на блоге! На начальном этапе использование плагинов вполне оправданно.
Виталий, здравствуйте! Не знала, что у Вас есть еще и этот, очень полезный блог. Тема резервных копий для меня тоже очень актуальна. Использую плагин WP-Optimize, Но, по-моему, он не удаляет все резервные копии. Как хорошо, что попала на эту статью! Попробую этот метод. Описано все подробно. Спасибо!
Здравствуйте Ирина, рад видеть Вас на своем блоге! Надеюсь Вы не раз еще заглянете в поисках чего-нибудь интересного для себя.
Виталий! Обязательно буду заглядывать! Здесь очень много интересного для меня. Спасибо за приглашение! Успехов в быстром продвижении блога!
Спасибо Ирина!
Виталий, спасибо вам огромное! Очень ценный и необходимый материал, который для меня актуален, как никогда.Давно хотела удалить ревизии записей, но не знала как это сделать. Так что наконец-то почищу свою базу. Она у меня уже распухла от этих ревизий.
Пожалуйста Арина!
Спасибо, пригодилось. Удалил копии с «маленького» блога — осталось 10% от записей в wp_posts 🙂 набираюсь смелости почистить «большой» сайт…
спасибо, помогло!
Виталий, я отключила ревизии копий в файле wp-config.php, в других файлах default-constants.php. — это тоже нужно делать или нет?
Анна, надо выбрать один из вариантов.
Виталий! После обновления сохраняются ли хаки или их надо заводить опять?
Файл wp-config.php с выходом новой версии WordPress не изменяется.
Спасибо за хороший и полезный пост. Очень пригодился.
здравствуйте, подскажите плиз :
В безе данных «SQL» после выполнения запроса выдает такую ошибку :
#1046 — No database selected
Посоветуйте чо нибудь. Заранее благодарен
Здравствуйте Игорь! Возможно причина в том, что вы не выбрали название базы данных в левой колонке.
Дякую за корисну пуцблікацію.
Провівши зміни в файлі wp-config.php нажіль нічого не змінилось. Копії всеодно відбувались.
І лише після зміни файла default-constants.php все почало працювати так як потрібно.
Спочатку не звернула уваги на це копіювання. І база швидко наповнювалась непотрібними копіями. Тому дякую що допомигли позбутись цих недоліків.
Меня постоянно озадачивало то, что при редактировании записи их накапливалось чуть ли не бесконечное множество. Понимала, что это увеличивает объем базы данных и в тоже время никогда не пользовалась копиями. Даже не предполагала, что есть возможность внести корректировку в этот процесс. Воспользуюсь рекомендацией.
Спасибо.
Пожалуйста Александра, рад видеть Вас на блоге!
После удаления ревизий из базы получила сообщение об удалении 2615 строк. Но при этом вес wp-posts как был 21,9 МВ так и остался. Что это может значить?
Виталий, спасибо за советы. КОгд то работал на вордпрессе, но это было давно, много е забыл, многое в новинку. Действительно, база данных почистилась, но при этом масса не уменьшилась. Странно. Да, для новичков скажите, что wp_posts — должен соответствовать базе данных. То есть, если таблицы начинаются с других букв, надо ставить свои….
Спасибо. Отключила сохранение ревизий, а от старые как удалить не нашла 🙁
Да действительно, отключать их нужно, дисковое пространство не резиновое, особенно когда доллар подлетел и цены на хостинг подлетели тоже…
Извините если ответ уже дан,быстро пробежался по тексту.
Меня интересует как удалить некоторые ревизии,то-есть не все сразу.
Дело в том,что у меня почти 10 тыс ревизий,из них мне хотелось бы сохранить хотя бы по одной каждого месяца,но плагины не справляются с задачей при выделении всех ревизий одновременно — страничка виснет…
Мне удобно пользоваться плагином WP-Optimize. Иногда возвращаюсь к старым редакциям, а плагин можно включить раз в месяц для оптимизации, а потом деактивировать до следующей, кстати на сайте автора плагина доступна русская локализация.
Я вот что подумала, после очередного обновления версии WordPress файл wp-config нужно будет редактировать заново или нет?
Нет, не надо.
Спасибо! Ревизии давно отключил, а вот до удаления старых только сегодня руки дошли…
Я вроде и пишу тексты в ворде, а потом вставляю на сайт, но редакции имеют место быть. Запятые там, опечатки. Боялась по вашим советам нажать кнопочку «вперед», а вдруг исчезнет весь контент? Но после ревизии таблица wp-posts похудела вполовину и сайт летает. Чудо-чудо)) Спасибо!!И вообще надолго зависла на вашем блоге.
видео в конце, к сожалению, заблокировано.
Спасибо Кирилл, пришлось убрать видео.
Виталий, спасибо. Много перелопатил, чтобы внятно было объяснение. Успехов.
А у меня что то не получилось. Вот что выскочило #1046 — No database selected. Что это такое?
Возможно вы не выбрали базу, из которой хотите удалить ревизии.
Дмитрию хочу сказать, что он действительно не выбрал базу данных. Просто перед тем как делать запрос SQL следовало, к примеру, слева, где отображаются ваши базы данных phpMyAdmin нажать на свою базу данных и затем уже делать запрос DELETE FROM wp_posts WHERE post_type = «revision»; Лично автору хочу выразить благодарность, информация очень полезная, особенно для таких новичков как я. Я вот наконец то избавился от этих ревизий, а то раньше постоянно приходилось чистить в ручную SQL запросом. Удачи и долгих лет вам и вашему сайту.
В который раз, Ваши пояснения, к тем или иным моментам в работе с WordPress дают более исчерпывающую информацию, чем в других источниках. Спасибо!
Виталий, спасибо большое! У меня запрос не выполнялся, пока не сообразил, что таблица у меня не wp_posts, а по-другому называется))
Теперь всё получилось. Благодарю!
Скажите, пожалуйста, как корректно можно базу от лишних картинок почистить? От ненужного масштабирования в том числе, когда WP сам нарезает несколько размеров одной картинки. Я примерно год назад пытался чистить. После этого у меня база медиафайлов не отображалась. В итоге я плюнул и вернул все как было.
Если у Вас есть статья на эту тему, подскажите её, пожалуйста.
Вот тут я частично касался удаления лишних размеров изображений.
Спасибо, сейчас ознакомлюсь.
У меня файл wp-config.php не изменился. Я посмотрел, что права у него были только на чтение. Сменил права, заменил файл. Посмотрю, появятся ли ревизии.
Виталий, я правильно понимаю, что для запрета создания ревизий достаточно прописать в файле wp-config.php строку define(‘WP_POST_REVISIONS’, false); и всё?
Заранее спасибо.
Если честно уже не помню, в статье же вроде все расписано.
Виталий, доброе утро!
03.06.2016 добавил код в файл wp-config.php, удалил ревизии из базы. Вчера корректировал одну из статей. Сегодня глянул её. В админке статьи написано «Редакции: 3 Просмотреть».
Посмотрел. Первая редакция: «Редакция пользователя 20 часов назад 5 июня 13:17», вторая — «Автосохранение пользователя 20 часов назад 5 июня 13:20», третья — «Текущая редакция пользователя 20 часов назад 5 июня 13:20».
В других статьях после чистки базы новых редакций нет.
Виталий, можете ли Вы подсказать на основании этих записей, корректно ли работает код?
Заранее благодарю.
К сожалению, при добавлении только define(‘WP_POST_REVISIONS’, false); в файл wp-config.php результата нет. Ревизии все равно создаются. Может быть, дело в правах на файл? У меня стоит 444.
Сергей, точно не могу сказать в чем причина.
Очень полезная для меня статья. тоже задумывался, а куда автосохранение девается и как от него избавится. Прочитав статью понял почему так много файлов на сайте. Буду аккуратно по вашим советам избавляться от них.
К чести автора — самая понятная статья на эту тему из почти трех десятков просмотренных. Все получилось, как надо. Буквально параллельно читал Вашу, Виталий, статью и статью на забугорном templatemonster.com Естественно протестил оба варианта. Забугорный хак (
goo.gl/GYc9os
) от 23.06.16 в итоге проиграл по всем позициям — сайт повис намертво. А Ваш способ уверенно сделал свое дело, хотя суть и содержание одинаковы, разнятся только места вставки кода в wp-config. Так что большое спасибо!Долго искал информацию на эту тему. И как всегда остановился на вашей версии. Сделал все, теперь пойду тэстить. Спасибо Виталий!
Очень полезная статья и блог в целом! Поставил в закладки, буду изучать. Спасибо, Виталий!
Очень полезная статья. Ревизии засоряют блог, в частности БД, не зачем их держать. После того, как от них избавишься сайт грузится быстрее.
Здравствуйте!
Я установил в файл wp-config.php ваш код, но wordpress продолжает сохранять ревизии.Почему?
Не знаю Николай, что-то вы не так делаете…
У, как много комментариев. Я тоже вставила строку, чтобы черновики не сохранялись. Проверю, что получится. Автору желаю успехов. От всякого труда есть прибыток.
Здравствуйте!
Подскажите пожалуйста, что может вызвать следующую ситуацию…
Попыталась убрать старые ревизии при помощи шорткода, описанного Вами выше.
На двух сайтах удачно проделала операцию, а третий лег, пришлось восстанавливать бек-ап.
Писало «ошибка соединения с БД».
Здравствуйте!
Трудно сказать, вариантов масса, вплоть до человеческого фактора.
Приветствую! Вордпресс снова обновился, и снова в консоли появилась забытая ссылка — Редакции. Непорядок — надо удалять!
Зашёл с яндекса именно на эту статью, так как запомнил название сайта при запросе, и первые бубнотанцы с Редакциями в своём вордпресике!
Правильная статья на правильном блоге! В море хорошо с маяком! Польза есть! Инфа пригождается! Ура-Ура! Успехов в развитии проекта!
Спасибо автору, уже несколько раз, в течении нескольких лет, периодически читаю эту статью и удаляю свои Редакции! На фиг они не нужны, есть полный бэкап, если что! А «что» бывает крайне редко и на практике, особо не пользуюсь! А вот ценность незахламлённой и прокачанной базы данных — осознаю, и практикую! Даёшь оптимизацию!
Здравствуйте! Странно. У меня, после обновления, никаких редакций не появилось.
Здравствуйте! А при обновлении вордпресса надо опять менять значения
if ( !defined(‘WP_POST_REVISIONS’) )
define(‘WP_POST_REVISIONS’, 5);
И еще вопрос: а в каком месте лучше прописывать эти правила или сделать это сразу и в wp-config.php и в default-constants.php
Здравствуйте!
Нет, при обновлении ничего менять не потребуется.
Проще будет в wp-config.php прописать.
А если там и тут?