Автоматическое сохранение черновиков (автосейв) в WordPress — полезная функция, которая предотвращает потерю данных при случайном закрытии вкладки или сбое браузера. Однако в некоторых случаях она может создавать неудобства: частые запросы к серверу, проблемы с совместимостью плагинов или нестабильная работа редактора. В этой статье разберём, как полностью отключить автосейв в WordPress и какие есть альтернативные решения.
Что такое автосейв в WordPress и зачем его отключать
По умолчанию WordPress автоматически сохраняет черновик поста каждые 60 секунд при редактировании. Это реализуется через JavaScript и AJAX-запросы, которые отправляют данные на сервер без участия пользователя.
Преимущества автосейва очевидны — вы не потеряете правки при сбое. Но есть ситуации, когда его лучше отключить:
- Большие сайты с высокой нагрузкой — частые AJAX-запросы создают дополнительную нагрузку на сервер.
- Совместимость с некоторыми плагинами или кастомными редакторами вызывает конфликты.
- Если вы используете сторонние решения для сохранения контента (например, плагин WPRemark), автосейв может мешать.
Как отключить автосейв через functions.php
Самый простой способ — добавить в файл functions.php вашей темы следующий код. Он отключает встроенный скрипт автосохранения:
function wpskills_disable_autosave() {
wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'wpskills_disable_autosave');
Этот код удаляет регистрацию скрипта autosave, и WordPress перестаёт автоматически сохранять черновики.
Обратите внимание, что такой способ отключает автосейв глобально для всех пользователей и постов.
Отключение автосейва для отдельных ролей пользователей
В некоторых случаях нужно оставить автосейв для администраторов, но отключить для редакторов или авторов. Для этого можно добавить условие по роли пользователя:
function wpskills_conditional_disable_autosave() {
if (!current_user_can('administrator')) {
wp_deregister_script('autosave');
}
}
add_action('wp_print_scripts', 'wpskills_conditional_disable_autosave');
Такой подход позволяет гибко управлять поведением автосейва без потери безопасности и удобства для главных редакторов сайта.
Отключение автосейва через JavaScript
Иногда проще отключить автосейв с помощью JavaScript — отменить периодические запросы к серверу, которые запускает WordPress. Для этого можно добавить следующий скрипт в админ-панель:
function wpskills_disable_autosave_js() {
echo "<script>
wp.autosave.server.destroy(); // Отключаем автосейв
</script>";
}
add_action('admin_footer-post.php', 'wpskills_disable_autosave_js');
add_action('admin_footer-post-new.php', 'wpskills_disable_autosave_js');
Этот код вызывает метод destroy() объекта wp.autosave.server, который отвечает за отправку AJAX-запросов автосейва.
Плагины для управления автосейвом и версионностью
Если вы не хотите писать код, существуют плагины, которые позволяют гибко управлять автосохранением и ревизиями постов:
- Disable Autosave — простой плагин, отключающий автосейв.
- WP Revisions Control — позволяет ограничить количество ревизий и настроить автосейв.
- Clearfy Pro — многофункциональный плагин оптимизации, в котором можно отключить автосохранение и ненужные функции WordPress.
Все эти плагины можно найти и установить через официальный репозиторий WordPress или приобрести на WPSHOP.ru.
Важные нюансы отключения автосейва
Перед отключением автосейва учтите следующие моменты:
- Ручное сохранение — теперь пользователю придётся чаще нажимать кнопку «Обновить» или «Сохранить».
- Риск потерять данные при сбоях браузера или закрытии вкладки увеличивается.
- При работе в команде и использовании редакторов Gutenberg автосейв повышает стабильность.
Поэтому отключайте автосейв только при реальной необходимости и тестируйте изменения на тестовом сайте.
Как вернуть автосейв, если что-то пошло не так
Если после отключения автосейв вы столкнулись с проблемами, просто удалите добавленные функции из functions.php или отключите плагин. Автосейв в WordPress будет работать по умолчанию.
Выводы
Отключение автоматического сохранения черновиков — частая задача для оптимизации и устранения конфликтов в WordPress. С помощью простого кода в functions.php или JavaScript можно полностью отключить автосейв или сделать его выборочным. Также доступны готовые решения в виде плагинов, например, Clearfy Pro. Помните, что отключение автосейва увеличивает риск потери данных, поэтому используйте данное решение осознанно.