Отключаем ревизии записей и удаляем их из базы

23 июня 2013

При создании записей в WordPress по умолчанию создаются ревизии записей (revisions) или редакции записей.
Создаются они для того, чтобы была возможность быстрого восстановления в случае какого-либо сбоя. Это автоматическисоздаваемые резервные копии записи.
Они создаются до тех пор, пока вы редактируете запись и она не будут опубликована.
Это может продолжаться определенное количество времени, соответственно и количество ревизий записи для каждого поста может быть различным.
Все они хранятся в базе данных вместе с содержимым записи.
И с ростом числа записей растет и число ревизий, что увеличивает базу данных.
При создании сайтов на системе WordPress, мы отключаем автоматическое создание ревизий записи, и рекомендуем подготовить материал локально, а после перенести его на сайт, создав новую запись.

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

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

Настройки экрана в WordPress

Откроется дополнительная панель настроек «Показывать на экране», где необходимо отметить пункт «Ревизии» или «Редакции».

После этого ниже текстового редактора будет отображен виджет «Ревизии».

Виджет Ревизии в WordPress

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

Теперь отключим создание ревизий для записей.

Для этого в файл wp-config.php, расположенный в корне сайта, необходимо дописать одну строку:

define('WP_POST_REVISIONS', 0);

Данный фрагмент выключает создание ревизий для записей.

Теперь удалим уже созданные ревизии из базы данных.

Запускаем PhpMyAdmin из панели управления хостингом и выбираем базу MySQL сайта.

phpMyAdmin - выбор базы MySQL

Если у вас несколько сайтов, то выбираем базу того сайта, с которым работаем.

Далее необходимо выполнить SQL-запрос, который удалит все созданные ранее ревизии.
Выбираем из верхнего меню раздел «SQL»:

SQL

Далее в поле необходимо ввести запрос:

Окно ввода sql-запроса

DELETE FROM wp_posts WHERE post_type = "revision";

И нажать «ОК».

В случае корректного исполнения sql-запроса, вы увидите сообщение:

Сообщение об успешном удалении ревизий из базы

Здесь стоит сказать о том, что при установке WordPress создается база, таблицы которой по умолчанию имеют префикс «wp_».
Структуру базы можно посмотреть в левой панеле PhpMyAdmin:

Структура базы данных WordPress

Выполняя sql-запрос мы удалили из таблицы wp-posts (таблица хранит все записи сайта, черновики и ревизии) данные со значением «revision».

Случается, что при установке WordPress префикс таблиц изменяется на другой (что мы настоятельно рекомендуем делать в целях повышения защиты), поэтому sql-запрос может выглядеть иначе, а именно:

DELETE FROM префикс таблиц_posts WHERE post_type = "revision";

Где «префикс таблиц» это тот префикс, который вы указали при установке WordPress, который можно посмотреть в структуре базы в левой в левой панеле PhpMyAdmin.

Успехов в создании и поддержке сайтов!

Дополнение

В версии WordPress 3 и выше отключение ревизий записи происходит иначе.
Для отключения необходимо в директории wp-includes найти файл default-constants.php, скачать его на локальный компьютер, затем найти в нем фрагмент:

    if ( !defined('WP_POST_REVISIONS') )
        define('WP_POST_REVISIONS', true);
}

и заменить значение true на false,
сохранить и закачать обратно на сервер с заменой старой версии файла.



Комментариев нет

Обязательные поля отмечены *

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