Как отключить или удалить автосохранение в WordPress

Функция автосохранения (autosave) в WordPress предназначена для предотвращения потери данных при редактировании страниц и записей. Однако в некоторых случаях автосохранение может создавать лишнюю нагрузку на базу данных, вызывать конфликты с плагинами или приводить к нежелательным версиям контента. В этой статье разберём, как можно полностью отключить или настроить автосохранение в WordPress, а также рассмотрим практические примеры с кодом и полезные плагины.

Что такое автосохранение в WordPress и зачем его отключать

Автосохранение — это механизм, который автоматически сохраняет текущий черновик записи или страницы через заданные интервалы времени (по умолчанию каждые 60 секунд). Это помогает защитить контент от случайного закрытия браузера или сбоев.

Однако в некоторых случаях автосохранение может:

  • Создавать большое количество ревизий и увеличивать базу данных.
  • Вызывать конфликты с плагинами, которые работают с редактором.
  • Снижать производительность сайта на слабых хостингах.

Поэтому важно знать, как правильно отключить или изменить поведение автосохранения.

Как отключить автосохранение через functions.php

Самый простой способ — добавить в файл functions.php вашей темы следующий код:

function wpboard_disable_autosave() {
    wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'wpboard_disable_autosave');

Этот код отключает загрузку скрипта автосохранения в админке, благодаря чему функция автосохранения перестаёт работать.

Однако такой подход может иметь побочные эффекты — например, потерю возможности восстановления при сбоях. Поэтому рекомендуем использовать его только если вы уверены, что автосохранение вам не нужно.

Отключение автосохранения для конкретных типов записей

Если требуется отключить автосохранение не для всех записей, а только для определённых типов, можно использовать такой код:

function wpboard_disable_autosave_for_cpt() {
    global $post_type;
    if ( 'your_post_type' === $post_type ) {
        wp_deregister_script('autosave');
    }
}
add_action('admin_print_scripts-post-new.php', 'wpboard_disable_autosave_for_cpt');
add_action('admin_print_scripts-post.php', 'wpboard_disable_autosave_for_cpt');

Замените your_post_type на нужный тип записи.

Настройка интервала автосохранения

Если полностью отключать автосохранение не хочется, можно увеличить интервал между автосохранениями, чтобы уменьшить нагрузку на сервер.

Добавьте в functions.php следующий код:

function wpboard_change_autosave_interval() {
    return 300; // интервал в секундах, здесь 5 минут
}
add_filter('autosave_interval', 'wpboard_change_autosave_interval');

Так автосохранение будет срабатывать реже, что снизит количество записей в базе данных.

Удаление автосохранённых версий из базы данных

Автосохранения создают в базе данных записи с типом revision. Чтобы очистить их, можно использовать SQL-запрос или плагин.

Пример SQL-запроса для удаления всех ревизий:

DELETE FROM wp_posts WHERE post_type = 'revision';

Перед выполнением обязательно сделайте резервную копию базы данных.

Также можно использовать плагин Clearfy Pro (ссылка на плагин), который позволяет управлять ревизиями и автосохранениями без ручного вмешательства.

Плагины для управления автосохранением и ревизиями

Если вы не хотите писать код, рассмотрите следующие плагины:

  • WP Revisions Control — позволяет ограничить количество ревизий для каждой записи.
  • Clearfy Pro — расширенные настройки оптимизации, включая отключение автосохранения и ревизий.
  • Disable Autosave — простой плагин для выключения автосохранения одним кликом.

Установка и настройка плагинов поможет решить проблему без риска ошибок в коде.

Практический пример: функция отключения автосохранения с проверкой nonce

Для более безопасного отключения автосохранения можно реализовать проверку nonce, чтобы отключать скрипт только для авторизованных пользователей с нужными правами.

function wpboard_conditional_disable_autosave() {
    if ( ! current_user_can('edit_posts') ) {
        return;
    }
    if ( ! isset($_GET['_wpnonce']) || ! wp_verify_nonce($_GET['_wpnonce'], 'update-post_' . get_the_ID()) ) {
        return;
    }
    wp_deregister_script('autosave');
}
add_action('wp_print_scripts', 'wpboard_conditional_disable_autosave');

Этот код отключит автосохранение только если пользователь имеет права на редактирование и nonce валиден.

Советы по оптимизации работы с автосохранениями в WordPress

Для минимизации проблем с автосохранениями рекомендуем:

  • Регулярно очищать ревизии с помощью плагинов или SQL-запросов.
  • Устанавливать адекватный интервал автосохранения (например, 5 минут).
  • Отключать автосохранение только в случае явных проблем или конфликтов.
  • Использовать плагины Clearfy Pro или WP Revisions Control для удобного управления.

Так вы сохраните баланс между безопасностью и производительностью.

Создание и использование ежемесячных задач в WordPress с помощью WP-Cron
11.12.2025
Автоматическое удаление старых transient через transient в WordPress
15.12.2025
Как создать собственный шорткод в WordPress
13.11.2025
Как удалить плагин без ошибок в WordPress
20.11.2025
Как использовать метод обновления transient в WordPress для кеширования данных
08.12.2025