Автосохранение — полезная функция WordPress, которая помогает избежать потери данных при создании и редактировании записей. Однако в некоторых случаях автосохранение может создавать лишние ревизии, замедлять работу сайта или вызывать конфликты с плагинами. В этой статье подробно разберём, как отключить автосохранение в WordPress, а также как контролировать ревизии и оптимизировать работу редактора.
Зачем отключать автосохранение в WordPress
Автосохранение по умолчанию сохраняет промежуточные версии записи каждые 60 секунд. Это отлично при нестабильном соединении или внезапном закрытии браузера, но:
- Автосохранения создают большое количество ревизий, которые засоряют базу данных.
- При большом объёме ревизий значительно растёт размер таблиц
wp_postsиwp_postmeta, что ведёт к замедлению сайта. - Редакторы и плагины могут конфликтовать из-за частых сохранений.
Если у вас есть собственная стратегия резервного копирования или вы используете плагин с автоматическим сохранением, отключение автосохранения может помочь повысить производительность.
Как отключить автосохранение с помощью кода
Самый надёжный способ отключить автосохранение — добавить фильтр в файл functions.php вашей темы или в файл основного плагина.
Добавьте следующий код:
function wpin_disable_autosave() {
wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'wpin_disable_autosave');Этот код отменяет регистрацию скрипта автосохранения, тем самым полностью отключая функцию.
Если вы хотите отключить автосохранение только на определённых типах записей, например, на страницах, используйте проверку:
function wpin_disable_autosave_conditional() {
global $post;
if (isset($post) && $post->post_type === 'page') {
wp_deregister_script('autosave');
}
}
add_action('wp_print_scripts', 'wpin_disable_autosave_conditional');Как контролировать ревизии записей
Если полностью отключать автосохранение не хочется, можно ограничить количество ревизий, чтобы база данных не разрасталась.
Добавьте в wp-config.php строку:
define('WP_POST_REVISIONS', 3);Здесь число 3 — максимальное количество ревизий на запись. Можно указать любое значение или false, чтобы отключить ревизии.
Удаление старых ревизий из базы данных
После отключения автосохранения полезно почистить старые ревизии. Для этого можно использовать SQL-запрос:
DELETE FROM wp_posts WHERE post_type = 'revision';Или воспользоваться плагином Clearfy Pro, который позволяет безопасно удалить ревизии и оптимизировать базу данных в один клик — подробнее на wpshop.ru/clearfy-pro.
Практические советы и рекомендации
Для большинства проектов не рекомендуется полностью отключать автосохранение, особенно если работает команда или часто создаются длинные записи. Однако в случаях с однопользовательскими сайтами или при использовании сторонних систем резервного копирования отключение может повысить скорость работы и снизить нагрузку на сервер.
Если вы используете редактор Gutenberg, обратите внимание, что он хранит данные в локальном хранилище браузера и периодически синхронизируется с сервером. Отключение автосохранения может повлиять на стабильность этой функции.
Использование плагинов для управления автосохранением
Существуют плагины, которые позволяют гибко настраивать поведение автосохранения, например:
- Autosave Control — отключает автосохранение или настраивает интервал.
- WP Revision Control — ограничивает количество ревизий и удаляет старые.
Оба плагина можно найти в репозитории WordPress. Для более продвинутого управления рекомендую обратить внимание на Clearfy Pro, который объединяет оптимизацию базы данных, очистку ревизий и контроль автосохранения.
Выводы
Отключение автосохранения в WordPress — простая задача, которая может помочь в оптимизации сайта и сокращении размера базы данных. Главное — понимать, зачем и когда это нужно делать, чтобы не потерять важные данные. Используйте предложенные решения и инструменты для эффективного управления ревизиями и автосохранением.