При сохранении статей и их черновиков в WordPress по умолчанию автоматически создаются новые версии или редакции (revisions) этих записей. При интенсивной правке записей этих редакций становится очень много, все они хранятся в базе данных. База данных неоправданно увеличивается и соответственно падает скорость работы с ней.
По умолчанию количество редакций не ограничено, хотя на практике нужно хранить максимум 3~5 для каждого поста.
Для ограничения количества редакций нужно добавить в файл wp-config.php строчку:
define('WP_POST_REVISIONS', 5); // ограничиваем максимальное число создаваемых редакций - 5
В принципе можно вообще отключить механизм версионности постов в WordPress добавив в файл wp-config.php строчку:
define('WP_POST_REVISIONS', false ); // отключить механизм версионности
или
define('WP_POST_REVISIONS', 0 );
но это не рекомендуется — иногда сохранившиеся предыдущие версии постов очень выручают.
Кроме этого в WordPress существует механизм автосохранения редактирования — через какой-то интервал времени происходить автоматическое сохранение редактируемого поста и создается очередная версия (редакция).
Можно задать собственный интервал сохранения редакций, добавив в wp-config.php строчку:
define('AUTOSAVE_INTERVAL', 300 ); // интервал в секундах
Если в базе накопилось уже достаточное количество редакций записей и возникла необходимость их удалить, то можно добавить в файл functions.php активной темы следующий код:
global $wpdb; $wpdb->query( " DELETE a,b,c FROM $wpdb->posts a LEFT JOIN $wpdb->term_relationships b ON (a.ID = b.object_id) LEFT JOIN $wpdb->postmeta c ON (a.ID = c.post_id) WHERE a.post_type = 'revision' " );
До добавления данного кода обязательно сделать резервную копию базы данных!!!!
После исчезновения всех редакций код нужно удалить.