25
Янв

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

Категория: Про Сайты
Теги: ,

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

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

Что такое "ревизии" и "автосохрание" записей в 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, а вот мета-данных у меня не было, но все равно на всякий случай проверьте. И на этом все, все пока.

Мой паблик в Вконтакте :)

Комментарии к записи Как отключить ревизии и автосохранени...