Функция автоматического сохранения (autosave) в WordPress — это полезный механизм, который помогает предотвратить потерю данных при редактировании записей и страниц. Однако на некоторых сайтах с большим количеством контента и активными пользователями autosave может создавать нагрузку на сервер и замедлять работу админки. В этой статье рассмотрим, как правильно отключить autosave в WordPress и какие альтернативные подходы можно использовать для сохранения данных без потерь.
Что такое autosave в WordPress и почему его отключают
Autosave — это функция, которая сохраняет черновик контента автоматически каждые 60 секунд (по умолчанию), чтобы избежать потери данных при случайном закрытии вкладки или сбое браузера. Каждое автосохранение создает отдельный временный пост-ревизию в базе данных, что со временем может привести к накоплению большого количества записей и замедлению работы сайта.
Также autosave увеличивает количество AJAX-запросов в админке при редактировании записи, что заметно снижает отзывчивость интерфейса на слабых серверах или при большом количестве одновременных пользователей.
Поэтому отключение autosave актуально для сайтов, где важнее производительность, и где пользователи могут самостоятельно сохранять изменения вручную.
Как отключить autosave с помощью кода в functions.php
Самый простой способ — запретить WordPress создавать автосохранения через фильтр. Добавьте следующий код в файл functions.php вашей активной темы или в плагин для кастомных функций:
function wpmanager_disable_autosave() {
wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'wpmanager_disable_autosave');Этот хук отключает подключение скрипта autosave в админке, и WordPress перестает делать автоматические сохранения.
Однако стоит помнить, что этот способ полностью отключает autosave, и если пользователь забудет сохранить запись вручную, изменения могут быть потеряны.
Альтернативный способ: увеличить интервал autosave
Если полностью отключать autosave не хочется, можно увеличить интервал между автосохранениями, например, до 10 минут (600 секунд). Это снизит нагрузку, но сохранит функцию защиты данных:
function wpmanager_change_autosave_interval() {
return 600; // интервал в секундах
}
add_filter('autosave_interval', 'wpmanager_change_autosave_interval');Этот код уменьшит частоту автосохранений и позволит сократить количество AJAX-запросов и ревизий.
Удаление старых autosave и ревизий из базы данных
Даже после отключения autosave, в базе могут оставаться старые автосохранения и ревизии, которые занимают место и замедляют работу. Их можно удалить вручную с помощью запроса в базу данных или через плагин, например, Clearfy Pro, который оптимизирует базу.
Пример SQL-запроса для удаления autosave и ревизий:
DELETE FROM wp_posts
WHERE post_type = 'revision' OR post_status = 'autosave';Рекомендуется делать резервную копию базы данных перед выполнением подобных операций.
Использование плагинов для управления autosave и ревизиями
Для тех, кто предпочитает готовые решения, есть несколько полезных плагинов:
- Clearfy Pro — позволяет управлять автосохранениями и ревизиями, удалять лишние и оптимизировать базу данных без ручного вмешательства. Поддерживает автоматические очистки и настройки частоты autosave. Подробнее на wpshop.ru.
- WPOptimize — популярный плагин для оптимизации базы данных, который включает очистку ревизий и автосохранений.
Использование таких плагинов особенно полезно, если на сайте много контента и вы хотите поддерживать базу в оптимальном состоянии без риска удалять нужные данные вручную.
Практический пример: отключение autosave только для определённых ролей
Иногда полезно отключить autosave не для всех, а только для определённых групп пользователей, например, для редакторов. Это можно сделать с помощью проверки роли пользователя:
function wpmanager_conditional_disable_autosave() {
if (current_user_can('editor') && !current_user_can('administrator')) {
wp_deregister_script('autosave');
}
}
add_action('wp_print_scripts', 'wpmanager_conditional_disable_autosave');Такой подход позволяет сохранять функцию для администраторов и отключать для остальных, снижая нагрузку и сохраняя удобство управления сайтом.
Подведение итогов
Отключение autosave в WordPress — эффективный метод уменьшить нагрузку на сервер и ускорить работу админки, особенно на крупных проектах. Однако стоит тщательно взвешивать риски потери данных и рассматривать альтернативы, например, увеличение интервала автосохранений или использование плагинов для оптимизации базы.
Для удобного управления функцией autosave и ревизиями рекомендуем обратить внимание на Clearfy Pro — мощный инструмент для оптимизации WordPress без лишних усилий.