В WordPress есть функция, которая сохраняет запись перед каждым редактированием, создавая так называемый редакции, то есть архивная версия. Это позволяет увидеть список изменений между выпусками и, возможно, вернуться к более старой версии.
Изменения возникают при редактировании записи. Каждая редакция записи – это другая ревизия, которая сохраняется в базе данных. Если мы отредактировали запись 10 раз, у нас есть 10 ревизий, из которых 9 абсолютно не нужны и находятся в базе данных. Например, если запись имеет размер 100 КБ, то в базе данных содержится 900 КБ ненужного контента, что снижает производительность блога. Редакция также является результатом функции автосохранения при записи / редактировании записи. Он включает в себя периодическое (по умолчанию каждую 1 минуту) и автоматическое сохранение контента, что предотвращает потерю эффектов нашей работы из-за различных случайных ситуаций. Но здесь разница в том, что автоматически сохраненная версия сохраняется только один раз, предыдущая версия заменяется новой автоматически сохраненной.
Использование константы WP_POST_REVISIONS
Самый простой метод контроля версий – это указать WP_POST_REVISIONS в файле wp-config.php в соответствии со спецификацией
Отключить ревизию:
define('WP_POST_REVISIONS',false);
Хранение указанного количества ревизий:
define('WP_POST_REVISIONS', X);
X – количество сохраненных версий записей
Код добавляется над параметром, определяющим префикс таблиц, например,
define('WP_POST_REVISIONS', 2); $table_prefix = 'wp_';
Эффект кода будет виден только для новых редакций, поэтому, если у нас уже есть много сохраненных ревизий, нам нужно удалить их дополнительным способом.
Удаление записей ревизий из базы данных
Способ 1
Войдите в phpMyAdmin и вставьте запрос на вкладку 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'
Другой вариант – вставить код в блокнот, сохранить файл с расширением .sgl и импортировать файл в phpMuAdmin на вкладке «Импорт». Эффект тот же. Готовый файл: del_revision.zip
Способ 2
Мы помещаем на сервер и запускаем файл .php с содержимым:
posts.' a '; $query .= 'LEFT JOIN '.$wpdb->term_relationships.' b ON (a.ID = b.object_id) '; $query .= 'LEFT JOIN '.$wpdb->postmeta.' c ON (a.ID = c.post_id) '; $query .= 'WHERE a.post_type='revision''; $wpdb->query($query);
Если имя файла – del_revision.php, введите «website.pl/delrevision.php» в браузере; кроме того, файл работает с каждым префиксом таблицы. Готовый файл: del_revision.zip
После удаления ревизии нам все еще нужно оптимизировать таблицы с помощью записей >>> wp_posts для удаления избыточной информации.
Готовые плагины