Как отключить ревизии и автосохранение в WordPress. Как удалить все ревизии записей из базы

Как отключить ревизии и автосохранение в WordPress. Как удалить все ревизии записей из базы

Отключаем ревизии (редакции) и автосохранение записей на сайте (блоге) WordPress. Удаляем все ревизии из базы при помощи phpMyAdmin.

Что такое «ревизии» и «автосохрание» записей в WordPress? Это «бяки», которые попросту загружают базу лишними строками. Разница у них небольшая: ревизий (редакций) записей много, а автосохраненная запись одна. Несомненно польза от них есть, но для простого блогера, такого как я, они не нужны (и корзина тоже). 

К сожалению, разработчики WordPress не предоставили нам такой возможности, чтобы мы могли одним кликом отключить (или удалить) эти «бяки», поэтому придется немного «попотеть» :)

Отключаем ревизии (редакции)

Чтобы отключить ревизии записей, вписываем этот код в файл конфигураций wp-config.php:

/* Отключаем редакции*/
define( 'WP_POST_REVISIONS', 0 );

или, если хотите просто уменьшить их количество, к примеру до 4:

define( 'WP_POST_REVISIONS', 4 );

ВАЖНО: данные строчки кода вписываем перед строчкой «/* Это всё, дальше не редактируем. Успехов! */». Вот как у меня:

define( 'WP_POST_REVISIONS', 0 );
/* Это всё, дальше не редактируем. Успехов! */

Отключаем автосохранение записей

Следующий код вписываем в файл function.php вашей темы:

// Отключаем автосохранение
function disableAutoSave(){
wp_deregister_script('autosave');
}
add_action( 'wp_print_scripts', 'disableAutoSave' );

Удаляем ревизии (редакции) записей из базы при помощи phpMyAdmin

Ну а теперь приступим к очистке базы от лишний копий записей, если таковые имеются. В базе редакции записей имеют тип «revision», это в столбце «post_type». И перед тем как посылать запрос на поиск и удаление этих строк, сделайте на всякий случай бэкап базы данных.

Но сперва удалим мета-данные (ключевые слова и описание) и таксономию (порядок, связи) ревизий при помощи запросов ниже.

DELETE FROM wp_postmeta WHERE post_id IN (SELECT ID FROM wp_posts WHERE post_type = 'revision' AND post_name LIKE '%revision%');
DELETE FROM wp_term_relationships WHERE object_id IN (SELECT ID FROM wp_posts WHERE post_type = 'revision' AND post_name LIKE '%revision%');

И наконец сами ревизии:

DELETE FROM wp_posts WHERE post_type = 'revision' AND post_name LIKE '%revision%';

Более наглядно: зайдите в phpMyAdmin, дальше во вкладку «SQL» и в поле вставляем запрос и жмем «Вперед». И так каждый запрос. 

Как видите ревизий было найдено и удалено 36, а вот мета-данных у меня не было, но все равно на всякий случай проверьте. И на этом все, все пока.

Комментарии

Комментариев пока нет. Почему бы ’Вам не начать обсуждение?

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *