Автосохранение — полезная функция WordPress, которая автоматически сохраняет черновики вашего контента через определённые интервалы времени. Однако в некоторых случаях эта функция может создавать проблемы: увеличивать нагрузку на базу данных, вызывать конфликты плагинов или просто быть не нужна разработчикам и администраторам сайтов. В этой статье подробно рассмотрим, как отключить автосохранение в WordPress разными способами, а также приведём примеры кода для вашей темы или плагина.
Что такое автосохранение и зачем его отключать
Автосохранение в WordPress сохраняет изменения в редакторе постов автоматически каждые несколько секунд. Это помогает избежать потери контента при сбоях или случайном закрытии вкладки. Но:
- Частые запросы к базе данных за автосохранениями могут замедлять сайт, особенно на больших проектах.
- Некоторые плагины и кастомные решения могут конфликтовать с механизмом автосохранения.
- При работе с большими постами и медленным соединением автосохранения иногда вызывают задержки и баги в редакторе.
Поэтому отключение автосохранения может быть оправдано в следующих случаях:
- Вы разрабатываете кастомное решение и хотите полностью контролировать сохранение контента.
- На сайте высокая нагрузка, и нужно оптимизировать работу с базой данных.
- Автосохранение вызывает конфликты с плагинами или темой.
Способы отключения автосохранения в WordPress
Есть несколько способов полностью или частично отключить автосохранение. Рассмотрим самые надёжные и простые.
Отключение автосохранения через фильтр
Самый надёжный и рекомендуемый способ — использовать фильтр WordPress wpautosave_send, который позволяет блокировать отправку автосохранений на сервер. Добавьте следующий код в файл functions.php вашей темы или в плагин:
function wpprotect_disable_autosave( $value ) {
return false;
}
add_filter( 'wpautosave_send', 'wpprotect_disable_autosave' );
Этот код полностью отключит отправку автосохранений, и WordPress перестанет сохранять черновики автоматически.
Отключение через JavaScript в редакторе
Если вы используете классический редактор или TinyMCE, можно отключить автосохранение на стороне клиента с помощью JavaScript. Добавьте такой скрипт в админку:
function wpprotect_disable_autosave_js() {
wp_enqueue_script( 'disable-autosave', '', [], false, true );
wp_add_inline_script( 'disable-autosave', 'if ( typeof tinyMCE !== "undefined" ) { tinyMCE.activeEditor.settings.autosave_ask_before_unload = false; tinyMCE.activeEditor.settings.autosave_interval = 0; }' );
}
add_action( 'admin_enqueue_scripts', 'wpprotect_disable_autosave_js' );
Однако этот способ менее надёжен и зависит от конкретной версии редактора.
Отключение автосохранения через изменение интервала
Если не хотите полностью отключать, можно увеличить интервал автосохранения, чтобы оно происходило реже. Для этого добавьте в functions.php:
function wpprotect_change_autosave_interval() {
return 3600; // интервал в секундах (1 час)
}
add_filter( 'autosave_interval', 'wpprotect_change_autosave_interval' );
Это уменьшит частоту автосохранения и снизит нагрузку на сервер.
Как проверить, что автосохранение отключено
После внесения изменений проверьте, что автосохранение не происходит:
- Откройте редактор записи.
- Внесите изменения и не нажимайте кнопку «Сохранить».
- Обновите страницу через несколько минут и проверьте, что изменения не сохранились автоматически.
Также в консоли браузера можно отслеживать AJAX-запросы к admin-ajax.php с параметром action=autosave. Если их нет, значит автосохранение отключено.
Примеры использования с популярными плагинами
Некоторые плагины могут конфликтовать с автосохранением. Например, при использовании Clearfy Pro можно дополнительно оптимизировать работу редактора и отключить ненужные скрипты автосохранения для повышения производительности.
Если вы используете WPRemark или другие плагины, которые активно взаимодействуют с контентом в редакторе, отключение автосохранения поможет избежать конфликтов и повторного сохранения данных.
Особенности отключения автосохранения в Gutenberg
Редактор Gutenberg использует собственный механизм автосохранения, основанный на REST API. Отключить его сложнее, но можно запретить периодическое сохранение через JavaScript. Например, добавьте в админку скрипт:
function wpprotect_disable_gutenberg_autosave() {
wp_add_inline_script( 'wp-blocks', '
wp.data.dispatch( "core/editor" ).disableAutosave();
' );
}
add_action( 'admin_enqueue_scripts', 'wpprotect_disable_gutenberg_autosave' );
Но этот метод может быть нестабильным и зависит от версии WordPress. Всегда тестируйте на тестовой среде.
Итоговые рекомендации
Отключение автосохранения — задача, которую стоит решать осознанно. Если вы не хотите потерять данные при сбоях, лучше просто увеличить интервал автосохранения или оптимизировать базу данных. Но если автосохранение вызывает проблемы или лишнюю нагрузку, описанные методы помогут вам быстро и безопасно отключить эту функцию.
Для более широкой оптимизации вашего сайта рекомендуем обратить внимание на плагины, такие как Clearfy Pro, которые помогут не только управлять автосохранением, но и повысить общую производительность и безопасность WordPress.