База знаний по Open Source
Авторизация
Поиск по базе знаний

При  сохранении статей и их черновиков в 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'
	"
);

До добавления данного кода обязательно сделать резервную копию базы данных!!!!

После исчезновения всех редакций код нужно удалить.

 

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