В WordPress отключение редакций и ревизий приносит умиротворение и порядок. Не знаю, как вас, меня иногда бесит огромное количество этих самых ревизий. И, ладно бы, мой сайт прост как грабли и не имеет большого количества функционала и контента. А если это большой сайт и контента много и он добавляется часто? Беда. Редакции — это резервные копии, которые сохраняются в базе данных при каждом обновлении поста или страницы. Если Вам все же нужны ревизии записей и страниц, то можно ограничить количество их сохранения, а можно полностью отключить и удалить.
Итак, решение принято. Мы хотим ограничить количество редакций или отключить их вовсе. Пути три:
- Ограничить редакции и ревизии можно при помощи:
WP_POST_REVISIONS
, поместив в config.php:
define('WP_POST_REVISIONS' , 1);
- Поработать с хуком, таким образом либо ограничить редакции и ревизии, либо отключить:
wp_revisions_to_keep
Ограничиваем:
function limit_save_revisions_db($count, $post) { if ($post->post_type == 'page') {//для стандартных страниц WordPress сохраняем 1 ревизию return 1; } elseif ($post->post_type == 'post') {//для стандартных записей WordPress сохраняем 3 ревизии return 3; } elseif ($post->post_type == 'reviews') {//для произвольного типа записей "Отзывы" не сохраняем ревизий return 0; } else {//для всех остальных сохраняем 3 ревизии return 3; } } add_action( 'wp_revisions_to_keep', 'limit_save_revisions_db', 10, 2 );
- Или отключаем. Третий вариант предусматривает полное отключение редакций и ревизий в WordPress:
function deactivate_revisions( $count ) { return 0; } add_filter( 'wp_revisions_to_keep', 'deactivate_revisions' );
После этого неплохо бы почистить БД WP через PHPMyAdmin (не забываем сделать резервную копию базы данных WP):
DELETE FROM `wp_posts` WHERE post_type = 'revision';
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%');