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

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

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

Посмотреть список всех ревизий, созданных для статьи, вы можете внизу страницы редактирования записи. Они выглядят так:

Редакции записи

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

Отключаем ревизии

Чтобы отключить ревизии, достаточно прописать в файле wp-config.php следующую строку:

define('WP_POST_REVISIONS', false);

Внимание! Эту строку нужно обязательно добавить до объявления константы ABSPATH, иначе работать не будет.

То есть, вставить нужно перед:

if ( !defined('ABSPATH') )
	define('ABSPATH', dirname(__FILE__) . '/');

К примеру, это может выглядеть так:

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

Удаляем старые ревизии из базы данных

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

Зайдите в phpMyAdmin, который находится в панели управления вашим хостингом. В верхнем меню кликните по ссылке «SQL». И в текстовое поле введите следующий SQL-запрос:

DELETE a,b,c FROM wp_posts a LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id) LEFT JOIN wp_postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision';

Обратите внимание, что в запросе используются названия таблиц wp_posts, wp_term_relationships и wp_postmeta с префиксом «wp_». Если при установке блога, вы указывали другой префикс, то в данном SQL-запросе в названиях таблиц измените его на свой.

И кликните по кнопке «OK».

Все поздравляю, старые ревизии были полностью удалены, а новые теперь не будут создаваться, и не будут засорять вашу базу данных. Чего мы и хотели добиться.

P.S. Если вам понравилась статья, пожалуйста поделитесь ей с друзьями и коллегами. Нажмите на социальные кнопки ниже или оставьте свой комментарий!

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

  • Здравствуйте!
    У меня в файле wp-config прописано
    define(‘WP_POST_REVISIONS’, false); однако ревизии сохраняются., а ваш вариант в файле default-constants.php слетает после обновления wordpress.
    Но меня больше интересует первый вопрос. почему созраняются ревизии при запрете в файле wp-config?

  • Поразительно. У меня и в wp-config прописано и в default-constants.php поменял, а редакции все равно штампует…
    Версия 4.6.1. Вы не в курсе, у них там появился еще какой-то вариант???

  • Здравствуйте, Александр!

    Тоже по причине лени, постоянно пользуюсь Вашей статьёй)
    За которую Вам огромное, человеческое — Спасибо!
    Вот и сегодня, снова))) Успеха Вам и всех благ!

  • 14.12.2015 18:48

    DELETE FROM wp_posts WHERE post_type = "revision";

  • 11.11.2015 12:09

    (functions.php — в папке с темой оформления)
    function disableAutoSave(){
    wp_deregister_script('autosave');
    }
    add_action( 'wp_print_scripts', 'disableAutoSave' );

  • Прекрасная статья.Все понятно и легко.Спасибо большое.По WP можно ли урок по плагину позволяющему назначать встречи на сайте ?

  • Спасибо, вроде помогло, посмотрим, что будет дальше:)

  • Спасибо большое Саша. Очень помогли твои советы. Теперь с ревизиями покончено.

  • Профессионально или нет, не мне решать, но ведь именно этот способ помог. Хотя всякие там инфогуру в своих курсах рекомендуют редактировать файл wp-config.php . Так что автору — спасибо! 🙂

    • 18.06.2014 12:55

      Елена Олейникова, после пары обновлений wordpress, вы уже не будете радоваться

    • 14.12.2015 18:50

      Да, придётся каждый раз ручками лазить, а движок апдейтится почти раз в неделю и легко этими самыми ручками зацепить что-то ещё, а потом по форумам искать ответа «Отчего и почему у меня перестало работать?»