Почему может понадобиться отключить автообновление плагинов в WordPress
Автоматические обновления плагинов — удобный механизм, который помогает поддерживать сайт в актуальном состоянии и снижает риск уязвимостей. Однако в бизнес-проектах с кастомными настройками и интеграциями автообновления могут привести к неожиданным сбоям, несовместимостям или потере функционала. Поэтому часто требуется отключить автообновление для отдельных плагинов или полностью, сохраняя при этом контроль за безопасностью.
Диагностика: как понять, что автообновление плагинов вызывает проблемы
- Сайт начал выдавать ошибки или некорректно работать после обновления плагина.
- Автоматически обновился плагин, который вы тестировали или настраивали, и повредил логику сайта.
- Наличие конфликтов между плагинами после обновления без вашего участия.
- Желание вручную тестировать обновления перед применением на рабочем сайте.
Пошаговое решение: отключение автообновления плагинов через код
1. Отключение автообновления для всех плагинов
Добавьте в functions.php вашей темы или в отдельный плагин следующий код:
add_filter('auto_update_plugin', '__return_false');Этот фильтр полностью отключает автоматические обновления плагинов.
2. Отключение автообновления для отдельных плагинов
Если нужно отключить автообновление только для конкретных плагинов, используйте фильтр с проверкой имени плагина:
add_filter('auto_update_plugin', function($update, $item) {
// Список плагинов для отключения автообновления
$plugins_to_disable = [
'akismet/akismet.php',
'contact-form-7/wp-contact-form-7.php'
];
if (in_array($item->plugin, $plugins_to_disable)) {
return false;
}
return $update;
}, 10, 2);Замените akismet/akismet.php и contact-form-7/wp-contact-form-7.php на пути нужных вам плагинов (папка/файл плагина).
3. Отключение автообновления с использованием файла wp-config.php
Можно полностью отключить автообновления для всех компонентов WordPress, добавив в wp-config.php строку:
define('AUTOMATIC_UPDATER_DISABLED', true);Но это затронет не только плагины, а и ядро, темы, что не всегда желательно.
Проверка результата после внедрения
- Перейдите в админку в раздел Обновления. Автообновления должны быть выключены для выбранных плагинов (при отключении выборочно).
- В файле
wp_optionsв базе данных в опцииauto_updater_disabledдолжно быть значение1(если использовалиAUTOMATIC_UPDATER_DISABLED). - Вы можете проверить логи обновлений (например, в
wp-content/debug.logпри включенном WP_DEBUG_LOG), чтобы убедиться, что автообновления не запускаются. - Подождите период, в который обычно происходили автообновления, и проверьте, не обновились ли плагины сами.
Частые ошибки и как их исправить
- Код не сработал, автообновления продолжаются
Проверьте, правильно ли вставлен код, и что он не переопределяется в другом месте. Для теста используйте чистую тему или отдельный плагин. - Использование
AUTOMATIC_UPDATER_DISABLEDвыключило обновления ядра и тем
Это нормальное поведение. Если нужно отключить только плагины, используйте фильтрauto_update_plugin. - Пути плагинов указаны неверно
Путь должен быть точным (папка/файл основного плагина). Узнать его можно из списка плагинов в админке, наведя на название плагина и посмотрев URL. - Конфликты с плагинами управления обновлениями (например, Easy Updates Manager)
Отключите сторонние плагины, которые могут влиять на автообновления, чтобы проверить чистоту работы вашего кода.
Практические советы по безопасности и производительности
- Выключая автообновления, не забывайте регулярно вручную проверять обновления плагинов и ядра WP, чтобы не допустить уязвимостей.
- Используйте staging-среду для тестирования обновлений плагинов перед применением на продакшене.
- Настройте уведомления по email о выходе обновлений с помощью плагинов или кастомного кода, чтобы не пропустить важные обновления.
- Для бизнес-сайтов рекомендуем использовать плагин Clearfy Pro, который позволяет гибко управлять обновлениями и оптимизировать безопасность без лишнего кода.
Сравнение способов отключения автообновления
| Метод | Плюсы | Минусы | Пример кода |
|---|---|---|---|
Фильтр auto_update_plugin для всех плагинов | Простое и быстрое отключение всех автообновлений плагинов | Нет выбора отдельных плагинов, отключает все сразу | |
Фильтр auto_update_plugin для отдельных плагинов | Гибкое управление, можно отключить только проблемные плагины | Требует точного указания путей плагинов | |
Константа AUTOMATIC_UPDATER_DISABLED | Выключает все автообновления (ядро, плагины, темы) | Слишком радикально, требует ручного контроля обновлений | |