» » » Полезные хаки WordPress. Часть №1. Как удалить, отключить, ограничить ревизии записей
logotip

Полезные хаки WordPress. Часть №1. Как удалить, отключить, ограничить ревизии записей

Всем привет! Сегодня на SEO-Mayak.com в рамках рубрики «Настройки WopdPress» я буду рассказывать как удалить, отключить или ограничить ревизии записей в WordPress.

Я думаю прежде, чем начать писать о ревизии записей, мне придется объяснить — что такое хаки?

Какой все же богатый русский язык! В нем одно слово может иметь множество значений , например слово «Дорога» или «Звезда».

Если посмотреть разные словари, то слово «Хаки» означает: цвет грязи или земли, ткань затишного цвета для армейского обмундирования, естественное углубление на глинистых грунтах.
Но также «Хаки» можно расценить, как множественное число от слова «Хак», которое имеет уже совершенно другие толкования.

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

Но какое же отношение хак имеет к данное статье? Самое прямое. С помощью хаков мы будем изменять, настраивать под себя, некоторые функции WordPress.

Дело в том, что наш любимый CMS WordPress имеет массу «недоделок» или наоборот лишних функций, от которых лучше избавиться в силу разных причин. Теперь попробую объяснить, что такое хаки свои словами:

Хаки — это маленькие по размеру программные коды, предназначенные для настройки или увеличения функционала разного рода программных продуктов.

Нетрудно проследить связь между словом «Хак» и Хакер», поэтому хаки могут быть, как полезные, так и вредные, т.е вирусами.

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

Почему надо отключать ревизии записей в WordPress

Теперь настал черед объяснить, что такое ревизии записей. WordPress замечательный движок и заботясь, чтобы ненароком наши черновики вдруг никуда не пропали, например при отключении электроэнергии или при других катаклизмах техногенного или бытового характера, он автоматически сохраняет копии наших записей.
revizii-zapisei-wordpress
Ревизии записей- это и есть те сохраненные копии о которых шла речь выше. Только вот почему они называются ревизиями,? Единственное объяснение я нашел в самой функции:

WP_POST_REVISIONS

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

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

Для наглядного примера покажу на скриншоте количество сохраненных редакций моей статьи «Релевантность страниц. Определение релевантности текста»

revizii zapisei2

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

Можно даже рассчитать вес текста. Каждый символ (буква или тире и т.д) весит 1 байт, в каждом килобайте — 1024 байта.

Я не поленился и подсчитал, что данная статья состоит из 9321 символов. Переводим в килобайты и получается 9.1 kb. Теперь умножаем на количество сохраненных ревизий записей (на данный момент я насчитал 35 сохранений) и получаем 318.5 килобайт. И если бы мне опять понадобилось редактировать эту статью, то число бы еще увеличилось.

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

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

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

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

Как отключить функцию сохранения ревизий в базе данных

Для отключения ревизий (сохранение редакций) в 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»

revizii zapisei3

На открывшийся странице вы увидите форму для ввода запросов:

revizii zapisei6

В поля для ввода запросов вставляем следующее:

DELETE FROM wp_posts WHERE post_type = "revision";

Нажимаем «ОК» и смотрим на сколько килобайт или мегабайт «похудела» таблица wp-posts.

В будущем я продолжу публиковать статьи с полезными хаками и поэтому советую обязательно подписаться на обновления блога

На сегодня у меня все. Как вам статья?

С уважением, Виталий Кириллов

Комментарии: 74

  1. Анна:

    Да, копии статей страшно засоряют хостинг. От них нужно избавляться.

    Ответить
    • Виталий Кириллов:

      Анна, обязательно надо, существенное облегчение наступает 🙂

      Ответить
  2. Sasha:

    Надо будет попробовать), спасибо.

    Ответить
    • Виталий Кириллов:

      Пожалуйста Sasha!

      Ответить
  3. Алла:

    Да, учитывая то, сколько раз мы корректируем… надо будет попробовать выполнить все по вашему уроку. Спасибо большое.

    Ответить
    • Виталий Кириллов:

      Алла, рад видеть Вас на блоге! Подчистить базу данных будет не лишнем!

      Ответить
  4. Марина:

    Не знала что можно отключить ревизии записей,нужно попробовать.

    Ответить
    • Виталий Кириллов:

      Здравствуйте Марина! Их не можно, а нужно отключать, ради экономии дискового пространства на сервере.

      Ответить
  5. Любовь:

    как пишут на демотиваторах — «школоте не понять». боюсь, что мне этого тоже не понять!

    Ответить
  6. Людмила:

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

    Ответить
    • Виталий Кириллов:

      Пожалуйста Людмила, рад видеть Вас на блоге!

      Ответить
  7. Анна:

    Сколько всего нужно сделать на своем сайте! Или сама делай или найми специалистов. Сама я все уже не успеваю.

    Ответить
    • Виталий Кириллов:

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

      Ответить
  8. Лана:

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

    Ответить
    • Виталий Кириллов:

      Лана, рад видеть Вас на блоге! Конечно, если удобней так, то лучше так и делайте.

      Ответить
  9. Наталья:

    очень хорошо все объяснено, у меня бы сейчас затруднений не вызвало избавить сайт от ненужных ревизий, но успела сделать это еще на момент становления блога почти год назад, весной. Когда статей было мало еще. Чему очень рада, места на сайте стало больше. так что чем моложе блог, тем лучше. Знаю еще плагин ставить рекомендуют, но зачем когда можно хаки применить?!

    Ответить
    • Виталий Кириллов:

      Это хорошо Наталья, что ты вовремя все сделала!

      Ответить
  10. Наталья:

    Я в свое время очень была озабочена этими ревизиями. Старалась меньше сохранять сама во время написания статей. Сейчас поставила плагин, который все подчищает и оставляет всего по 1 копии статьи. А с кодами так и не смогла разобраться.

    Ответить
    • Виталий Кириллов:

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

      Ответить
      • Наталья:

        Виталий, я это знаю прекрасно. Просто выбора нет. Ну не могу я поставить так коды, что бы они работали, сколько ни бьюсь. То ли не туда пихаю, то ли не то… А что остается делать, если нужно сделать, а не выходит по другому ?!

        Ответить
        • Виталий Кириллов:

          Наталья, есть два выхода из Вашей ситуации:
          1. Пройти курсы по основам HTML и CSS (напишите мне в личку и я вам дам бесплатную ссылку)
          2. Пользоваться услугами специалистов
          Я в скором времени, также буду оказывать платные услуги за весьма умеренную плату:)

          Ответить
          • Наталья:

            Пользоваться услугами мне не очень хочется. Ну в таких простых вещах. Надеюсь, что смогу разобраться. Не много не поняла про личку. На форуме, там понятно- личное сообщение. А на сайте? В комментах есть же мой мэйл. Если не сложно киньте, плз, туда.

            Ответить
            • Виталий Кириллов:

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

              Ответить
  11. Татьяна:

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

    Ответить
    • Виталий Кириллов:

      Попробуйте Татьяна, можете даже написать о результатах в комментах!

      Ответить
  12. Татьяна Румянцева:

    Здравствуйте Виталий! Вот так ХАКИ!!!!!
    Но уж очень все сложно….С плагином — то конечно проще.
    А так высокие материи — я ще не доросла.
    Хотя понимаю что с моими редакциями статей — копий там великое множество…..
    буду знать где искать — ведь это тоже важно, когда нужно.
    С ув. Т.С

    Ответить
    • Виталий Кириллов:

      Здравствуйте Татьяна, рад видеть вас на блоге! На начальном этапе использование плагинов вполне оправданно.

      Ответить
  13. iryna:

    Виталий, здравствуйте! Не знала, что у Вас есть еще и этот, очень полезный блог. Тема резервных копий для меня тоже очень актуальна. Использую плагин WP-Optimize, Но, по-моему, он не удаляет все резервные копии. Как хорошо, что попала на эту статью! Попробую этот метод. Описано все подробно. Спасибо!

    Ответить
    • Виталий Кириллов:

      Здравствуйте Ирина, рад видеть Вас на своем блоге! Надеюсь Вы не раз еще заглянете в поисках чего-нибудь интересного для себя.

      Ответить
  14. iryna:

    Виталий! Обязательно буду заглядывать! Здесь очень много интересного для меня. Спасибо за приглашение! Успехов в быстром продвижении блога!

    Ответить
    • Виталий Кириллов:

      Спасибо Ирина!

      Ответить
  15. Арина:

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

    Ответить
    • Виталий Кириллов:

      Пожалуйста Арина!

      Ответить
  16. brainbreaker:

    Спасибо, пригодилось. Удалил копии с «маленького» блога — осталось 10% от записей в wp_posts 🙂 набираюсь смелости почистить «большой» сайт…

    Ответить
  17. шин:

    спасибо, помогло!

    Ответить
  18. Анна:

    Виталий, я отключила ревизии копий в файле wp-config.php, в других файлах default-constants.php. — это тоже нужно делать или нет?

    Ответить
    • Виталий Кириллов:

      Анна, надо выбрать один из вариантов.

      Ответить
  19. Тамара:

    Виталий! После обновления сохраняются ли хаки или их надо заводить опять?

    Ответить
    • Виталий Кириллов:

      Файл wp-config.php с выходом новой версии WordPress не изменяется.

      Ответить
  20. Chess:

    Спасибо за хороший и полезный пост. Очень пригодился.

    Ответить
  21. Игорь:

    здравствуйте, подскажите плиз :
    В безе данных «SQL» после выполнения запроса выдает такую ошибку :
    #1046 — No database selected
    Посоветуйте чо нибудь. Заранее благодарен

    Ответить
    • Виталий Кириллов:

      Здравствуйте Игорь! Возможно причина в том, что вы не выбрали название базы данных в левой колонке.

      Ответить
  22. Лілія:

    Дякую за корисну пуцблікацію.
    Провівши зміни в файлі wp-config.php нажіль нічого не змінилось. Копії всеодно відбувались.

    І лише після зміни файла default-constants.php все почало працювати так як потрібно.

    Спочатку не звернула уваги на це копіювання. І база швидко наповнювалась непотрібними копіями. Тому дякую що допомигли позбутись цих недоліків.

    Ответить
  23. Александра:

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

    Спасибо.

    Ответить
    • Виталий Кириллов:

      Пожалуйста Александра, рад видеть Вас на блоге!

      Ответить
  24. Ирина:

    После удаления ревизий из базы получила сообщение об удалении 2615 строк. Но при этом вес wp-posts как был 21,9 МВ так и остался. Что это может значить?

    Ответить
  25. Владимр:

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

    Ответить
  26. Екатерина:

    Спасибо. Отключила сохранение ревизий, а от старые как удалить не нашла 🙁

    Ответить
  27. Web-informer:

    Да действительно, отключать их нужно, дисковое пространство не резиновое, особенно когда доллар подлетел и цены на хостинг подлетели тоже…

    Ответить
  28. stan:

    Извините если ответ уже дан,быстро пробежался по тексту.
    Меня интересует как удалить некоторые ревизии,то-есть не все сразу.
    Дело в том,что у меня почти 10 тыс ревизий,из них мне хотелось бы сохранить хотя бы по одной каждого месяца,но плагины не справляются с задачей при выделении всех ревизий одновременно — страничка виснет…

    Ответить
  29. Роман llgr:

    Мне удобно пользоваться плагином WP-Optimize. Иногда возвращаюсь к старым редакциям, а плагин можно включить раз в месяц для оптимизации, а потом деактивировать до следующей, кстати на сайте автора плагина доступна русская локализация.

    Ответить
  30. Олеся:

    Я вот что подумала, после очередного обновления версии WordPress файл wp-config нужно будет редактировать заново или нет?

    Ответить
    • Виталий Кириллов:

      Нет, не надо.

      Ответить
  31. Andrey:

    Спасибо! Ревизии давно отключил, а вот до удаления старых только сегодня руки дошли…

    Ответить
  32. Ирина:

    Я вроде и пишу тексты в ворде, а потом вставляю на сайт, но редакции имеют место быть. Запятые там, опечатки. Боялась по вашим советам нажать кнопочку «вперед», а вдруг исчезнет весь контент? Но после ревизии таблица wp-posts похудела вполовину и сайт летает. Чудо-чудо)) Спасибо!!И вообще надолго зависла на вашем блоге.

    Ответить
  33. Кирилл:

    видео в конце, к сожалению, заблокировано.

    Ответить
    • Виталий Кириллов:

      Спасибо Кирилл, пришлось убрать видео.

      Ответить
  34. Константин:

    Виталий, спасибо. Много перелопатил, чтобы внятно было объяснение. Успехов.

    Ответить
  35. Дмитрий:

    А у меня что то не получилось. Вот что выскочило #1046 — No database selected. Что это такое?

    Ответить
    • Виталий Кириллов:

      Возможно вы не выбрали базу, из которой хотите удалить ревизии.

      Ответить
  36. Саня:

    Дмитрию хочу сказать, что он действительно не выбрал базу данных. Просто перед тем как делать запрос SQL следовало, к примеру, слева, где отображаются ваши базы данных phpMyAdmin нажать на свою базу данных и затем уже делать запрос DELETE FROM wp_posts WHERE post_type = «revision»; Лично автору хочу выразить благодарность, информация очень полезная, особенно для таких новичков как я. Я вот наконец то избавился от этих ревизий, а то раньше постоянно приходилось чистить в ручную SQL запросом. Удачи и долгих лет вам и вашему сайту.

    Ответить
  37. Милана:

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

    Ответить
  38. Сергей:

    Виталий, спасибо большое! У меня запрос не выполнялся, пока не сообразил, что таблица у меня не wp_posts, а по-другому называется))
    Теперь всё получилось. Благодарю!
    Скажите, пожалуйста, как корректно можно базу от лишних картинок почистить? От ненужного масштабирования в том числе, когда WP сам нарезает несколько размеров одной картинки. Я примерно год назад пытался чистить. После этого у меня база медиафайлов не отображалась. В итоге я плюнул и вернул все как было.
    Если у Вас есть статья на эту тему, подскажите её, пожалуйста.

    Ответить
    • Виталий Кириллов:

      Вот тут я частично касался удаления лишних размеров изображений.

      Ответить
      • Сергей:

        Спасибо, сейчас ознакомлюсь.

        Ответить
  39. Сергей:

    У меня файл 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».

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

        Виталий, можете ли Вы подсказать на основании этих записей, корректно ли работает код?

        Заранее благодарю.

        Ответить
  40. Сергей:

    К сожалению, при добавлении только define(‘WP_POST_REVISIONS’, false); в файл wp-config.php результата нет. Ревизии все равно создаются. Может быть, дело в правах на файл? У меня стоит 444.

    Ответить
    • Виталий Кириллов:

      Сергей, точно не могу сказать в чем причина.

      Ответить
  41. Сергей:

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

    Ответить
  42. Сергей:

    К чести автора — самая понятная статья на эту тему из почти трех десятков просмотренных. Все получилось, как надо. Буквально параллельно читал Вашу, Виталий, статью и статью на забугорном templatemonster.com Естественно протестил оба варианта. Забугорный хак (goo.gl/GYc9os) от 23.06.16 в итоге проиграл по всем позициям — сайт повис намертво. А Ваш способ уверенно сделал свое дело, хотя суть и содержание одинаковы, разнятся только места вставки кода в wp-config. Так что большое спасибо!

    Ответить
  43. Максад Исаев:

    Долго искал информацию на эту тему. И как всегда остановился на вашей версии. Сделал все, теперь пойду тэстить. Спасибо Виталий!

    Ответить
  44. Дмитрий:

    Очень полезная статья и блог в целом! Поставил в закладки, буду изучать. Спасибо, Виталий!

    Ответить

Оставить комментарий

Внимание комментатор! Прежде чем вставить: HTML, JavaScript или PHP код в свой комментарий, преобразуй его в html сущность!

Subscribe without commenting

» Подписаться на комментарии по RSS