Изменения в WordPress

415

В WordPress есть функция, которая сохраняет запись перед каждым редактированием, создавая так называемый редакции, то есть архивная версия. Это позволяет увидеть список изменений между выпусками и, возможно, вернуться к более старой версии.
Изменения возникают при редактировании записи. Каждая редакция записи – это другая ревизия, которая сохраняется в базе данных. Если мы отредактировали запись 10 раз, у нас есть 10 ревизий, из которых 9 абсолютно не нужны и находятся в базе данных. Например, если запись имеет размер 100 КБ, то в базе данных содержится 900 КБ ненужного контента, что снижает производительность блога. Редакция также является результатом функции автосохранения при записи / редактировании записи. Он включает в себя периодическое (по умолчанию каждую 1 минуту) и автоматическое сохранение контента, что предотвращает потерю эффектов нашей работы из-за различных случайных ситуаций. Но здесь разница в том, что автоматически сохраненная версия сохраняется только один раз, предыдущая версия заменяется новой автоматически сохраненной.

Изменения в WordPress

Использование константы WP_POST_REVISIONS
Самый простой метод контроля версий – это указать WP_POST_REVISIONS в файле wp-config.php в соответствии со спецификацией Revision Management .

Отключить ревизию:

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 для удаления избыточной информации.

Готовые плагины
Revision Control для определения количества сохраненных записей и WP-Optimize для удаления ревизии из базы данных и ее оптимизации.