Как в WordPress отключить сохранение копий статей?
Те, кто ведет свой блог на WordPress наверняка заметили, что WordPress автоматически сохраняет копии всех редакций статей. Исправили Вы опечатку, нажали кнопку «Сохранить» — получайте очередную запись в базу данных. Думаю не нужно объяснять, что каждая запись в базе данных имеет вес, и тем самым, занимает часть памяти, выделенной хостинг-провайдером под Ваш сайт. Проведя ревизию базы данных можно обнаружить, что к каждой записи (статье) в базе хранится от 20 и более резервных копий. Т.е. вместо, например, 50 статей там лежит 1000! Как же от них избавиться без использования плагинов и порчи базы данных?
1. Первым делом отключаем сохранение этих самых резервных копий. Для этого в папке, где лежат файлы Вашего блога находим файл wp-config.php. Открываем файл в режиме редактирования и находим в нем раздел с параметрами MySQL, как правило, это самый первый раздел в данном файле. Каждая строчка начинается со слова define. Добавим в конце раздела еще одну строчку с комментарием:
/** Отключение сохранения редакций статей. */
define('WP_POST_REVISIONS', false);
Если в этом разделе у Вас уже была такая строчка, но в ней было указано true, то просто замените true на false. Теперь копии Ваших статей не будут сохраняться.
2. Далее переходим к тем копиям, которые уже сохранились в базе данных. Для этого необходимо открыть базу данных в phpMyAdmin. Затем нужно перейти на вкладку SQL, ввести запрос к базе данных и нажать кнопку «Ок», после выполнения запроса в базе будут стерты все записи с копиями статей:
DELETE FROM wp_posts WHERE post_type = "revision";
Если страшно сразу удалять, то можно сначала отобрать нужные, используя следующий запрос:
SELECT * FROM wp_posts WHERE post_type = "revision"
Затем отметить галочками выбранные записи или кликнуть мышкой под таблицей на ссылку «отметить все» и нажать кнопку . Вообще перед манипуляциями с базой данных желательно создать ее резервную копию. Как это сделать читайте здесь.
На этом многие обычно останавливаются, но это плохая чистка базы данных.
3. Следующим этапом будет оптимизация таблиц. Дело в том, что записи в таблице не хранятся на сервере в одном месте, а записаны кусочками (фрагментами) в разных местах, поэтому при удалении записей из таблицы, связь между кусочками теряется и полного удаления данных с сервера не происходит, т.е. Ваши удаленные килобайты никуда не уйдут. Чтобы полноценно очистить базу данных, необходимо ее открыть все в том же phpMyAdmin. Перед Вами будет список таблиц Вашей базы данных, в правой колонке «Фрагментировано» у некоторых таблиц будут ненулевые значения — это и есть наши кусочки (я чищу базу регулярно, поэтому у меня не такие большие цифры, но они могут достигать нескольких мегабайт):
Далее нужно отметить галочками таблицы с ненулевыми значениями в столбце «Фрагментировано» и под таблицей из выпадающего списка выбрать «Оптимизировать таблицу». Оптимизация таблиц позволяет уменьшить время исполнения запросов к базе данных и тем самым ускорить загрузку страниц Вашего блога.
Есть вопросы? Задайте их через форму комментариев.
Здравствуйте!
Спасибо за полезную статью!
Как раз недавно искал подобную информацию.
Более подробно изучу Ваши статьи.
И снова, здравствуйте.
Перед тем как выполнять запросы в phpMyAdmin к базе на вкладке SQL следует выбрать саму базу на предыдущей вкладке. Иначе получаем сообщение об ошибке.
Добрый вечер!
Андрей, спасибо за комментарии.
В тексте статьи указано «Для этого необходимо открыть базу данных в phpMyAdmin», а внизу на картинке слева виден список таблиц базы данных, что как-бы показывает, что база уже выбрана:)
Я стараюсь раскрывать темы в статьях полностью, чтобы было доступно даже новичкам.
Комментарии очень помогают выяснить понятна ли статья читателям.
Еще раз спасибо.
Добрый день!
Благодаря Вашей статье я почистила в базах SQL около 35 МБ дискового пространства.
Но мне хотелось бы почистить еще дисковое пространство, так как у меня приближается к верхней границе допустимого.
Как можно почистить public.html?
Слышала про картинки, но как определить, которая свободна, чтобы ее удалить? Наверное, эта статья была не на Вашем блоге?
Добрый день!
Галина, если я правильно Вас поняла, то Вы хотите почистить папку public_html, чтобы освободить место на сервере.
К сожалению, тут нет совета на все случаи жизни. Нужно смотреть индивидуально.
Возможно Вам пригодится моя статья про уменьшение размера картинок:
http://maryko.ru/blog/decrease-site-image-size