Отключение ревизий и полное их удаление в WordPress
Эту статью я хотел бы начать с небольшой предыстории. Уверен, что большая часть пользователей, кто держит свои сайты на CMS WordPress, услышав слово «ревизия», понятия не имеют, о чем идет речь.
Дело в том, что по умолчанию в WordPress есть такая штука, как автосохранение. Работает она по такому принципу: при каждом редактировании материала создается его копия на всякий случай, например, при падении сайта или проблемах с доступом в Интернет.
Штука, конечно, эта полезная, но очень сильно засоряющая сайт и влияющая на скорость его работы.
Мне довелось поработать на одном крупном сайте, где число этих копий составляло порядка 120 000. Представляете, сколько только одного дискового пространства занимает такая база и как это сказывается на работе вашего сайта?
Поскольку, как я уже подметил ранее, мало кто знает об этой функции WordPress, я расскажу, как легко удалить старые ревизии на вашем сайте и как вообще отключить их, если вы в них не нуждаетесь.
Как узнать, сколько ревизий есть на вашем сайте?
Для того чтобы узнать, сколько на вашем сайте существует ревизий, воспользуемся специальным плагином под названием «WP DB Booster», установить который вы можете через официальный каталог плагинов WordPress.
После успешной установки и активации плагина в левом навигационном меню панели управления вашего сайта появится новый раздел – «WP DB Booster».
Кликаете по нему и переходите на главную страницу статистики модуля.
Здесь вы спускаетесь немного вниз и смотрите на строку «Revisions», напротив которой как раз показано число ревизий, существующих на вашем сайте.
Как удалить все ревизии с вашего сайта?
Вариантов удаления ревизий несколько.
Первый и, наверное, самый простой – это напротив строки, описанной выше, нажать кнопку «Empty».
В таком случае произойдет удаление ревизий.
Но есть и второй вариант. Поскольку модули чаще всего устаревают или работают не корректно на той или иной версии CMS, я предлагаю вам еще один вариант удаления этих ревизий – через 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_». Если же ваша база данных имеет другой префикс – измените его на соответствующий во всех необходимых местах запроса.
Как полностью отключить функцию ревизий?
Для того чтобы отключить ревизии на вашем сайте, вам нужно сделать следующее.
Если вы используете старую версию движка (до версии 3.0), то:
1. Подключитесь к вашему сайту по FTP.
2. В корне сайта откройте файл wp-config.php и в самый конец вставьте строку:
define("WP_POST_REVISIONS", false);
3. На этом отключение ревизий в старых версиях закончено.
Если вы используете новую версию движка (3.0 и выше), то вам необходимо:
1. Подключиться к вашему сайту по FTP.
2. Открыть файл default-constants.php в папке /wp-includes/. В нем вы находите строку:
define('WP_POST_REVISIONS', true);
И заменяете ее на:
define("WP_POST_REVISIONS", false);
Сохраняете изменения и отправляете файл обратно на сайт.
3. На этом отключение ревизий в новых версиях CMS WordPress также закончено.
Вот, собственно, и все, что я хотел рассказать вам про ревизии в WordPress. Для кого-то это будет нечто новым, несмотря на свой богатый опыт с данной CMS, а кто-то просто освежит память.
Если вам понравилась статья – не забудьте поддержать проект, а если у вас остались вопросы, задавайте их в комментариях.
До новых встреч!