Диагностика проблемы: зачем отключать автоматические обновления плагинов
Автоматические обновления плагинов в WordPress повышают безопасность и стабильность сайта, но иногда они приводят к конфликтам с кастомным кодом, несовместимости с темой или нуждаются в предварительном тестировании на staging-среде. Часто владельцы сайтов с уникальными настройками WooCommerce или сложными интеграциями хотят контролировать процесс обновления вручную.
Если вы столкнулись с неожиданными сбоями после обновления плагина или хотите централизованно управлять обновлениями, имеет смысл отключить автоматические обновления плагинов selectively или полностью.
Как отключить автоматические обновления всех плагинов через functions.php
Самый простой способ — запретить WordPress применять автообновления плагинов глобально. Для этого добавьте следующий код в functions.php вашей темы или в файл основного кастомного плагина:
add_filter('auto_update_plugin', '__return_false');Этот фильтр отключит автообновления для всех плагинов. Однако учтите, что это глобальное решение.
Проверка результата
Чтобы убедиться, что автообновления плагинов отключены:
- Перейдите в админку WordPress в раздел Консоль > Обновления;
- Убедитесь, что для плагинов отсутствуют автоматические обновления (обычно WordPress показывает статус автообновления);
- Можно временно включить логи или плагин WP Crontrol для просмотра запущенных заданий обновления;
- При следующем цикле обновлений плагинов обновления происходить не будут.
Как отключить обновления отдельных плагинов с помощью фильтра
Часто нужно запретить автообновления только для конкретных плагинов, оставив остальные обновляться автоматически. Для этого используется фильтр auto_update_plugin с проверкой имени плагина:
add_filter('auto_update_plugin', 'disable_auto_update_some_plugins', 10, 2);
function disable_auto_update_some_plugins($update, $item) {
$plugins_to_disable = [
'woocommerce/woocommerce.php',
'contact-form-7/wp-contact-form-7.php'
];
if (in_array($item->plugin, $plugins_to_disable)) {
return false;
}
return $update;
}В массиве $plugins_to_disable указывайте пути к основным файлам плагинов относительно папки wp-content/plugins. Этот код отключит автообновления только для WooCommerce и Contact Form 7.
Проверка результата
Повторите шаги из предыдущего раздела и проверьте, что для указанных плагинов автообновление отключено, а для остальных — включено.
Как отключить автоматические обновления ядра и тем (для полноты)
Иногда полезно отключить автообновления для всего — тем и ядра. Используйте похожие фильтры:
add_filter('auto_update_core', '__return_false');
add_filter('auto_update_theme', '__return_false');Это гарантирует, что все обновления будут контролироваться вручную.
Чек-лист: как отключить автообновления плагинов вручную
- Определите, нужно ли отключать автообновления для всех плагинов или выборочно;
- Добавьте соответствующий код в
functions.phpили в кастомный плагин; - Очистите кеш сайта и браузера;
- Проверьте статус автообновлений в админке WordPress;
- При необходимости установите плагин WP Crontrol и проверьте Cron-задачи;
- Проведите тестовое обновление (например, на staging-сайте) для проверки, что автообновления не происходят.
Частые ошибки при отключении автообновлений и их исправление
- Код не работает: возможно, фильтр добавлен в неправильный файл или тема переопределяет его. Рекомендуется использовать кастомный плагин для таких изменений.
- Путь плагина указан неверно: убедитесь, что путь совпадает с именем папки и основного PHP-файла плагина, например,
woocommerce/woocommerce.php. - Конфликты с плагинами управления обновлениями: некоторые плагины типа Easy Updates Manager могут переопределять автообновления. Проверьте настройки этих плагинов.
- Кеширование: кеширование на уровне сервера или плагина может мешать увидеть изменения сразу. Очистите кеш.
Практические советы по безопасности и производительности
- Отключая автообновления, не забывайте регулярно проверять наличие обновлений вручную — устаревшие плагины повышают риск безопасности.
- Для крупных сайтов с кастомными решениями используйте staging-среду и CI/CD для тестирования обновлений перед выкатыванием на продакшен.
- Рассмотрите использование WPShop плагина Clearfy Pro для комплексного управления обновлениями, SEO и чисткой сайта.
- Используйте Cron и хуки WordPress для автоматизации уведомлений о доступных обновлениях, чтобы не пропустить важные патчи.
Сравнение способов отключения автообновлений
| Метод | Плюсы | Минусы | Пример кода |
|---|---|---|---|
| Глобальное отключение через фильтр | Простое и быстрое решение | Нет гибкости, отключает все плагины | add_filter('auto_update_plugin', '__return_false'); |
| Отключение для конкретных плагинов | Гибкий контроль, можно оставить автообновления для остальных | Требуется поддерживать список плагинов | add_filter('auto_update_plugin', function($update, $item) { /* проверка */ }, 10, 2); |
| Плагины управления обновлениями (например, Easy Updates Manager) | Удобный UI, дополнительные настройки | Может конфликтовать с кастомным кодом | UI в админке, нет необходимости писать код |