Автоматические обновления плагинов в WordPress позволяют поддерживать сайт в безопасности и актуальности, но иногда их необходимо отключить, например, чтобы избежать конфликтов с кастомными разработками или нестабильностью новых версий. В этой статье мы подробно разберём, как отключить автоматическое обновление плагинов в WordPress, какие способы существуют и на что стоит обратить внимание.
Почему стоит отключать автоматические обновления плагинов
Автоматизация обновлений экономит время и помогает закрывать уязвимости, однако есть ситуации, когда её лучше контролировать вручную:
- Совместимость: Новый релиз плагина может конфликтовать с темой или другими плагинами;
- Кастомные изменения: Если вы модифицировали код плагина, обновление перезапишет изменения;
- Тестирование: Желание сначала проверить обновление на тестовой среде;
- Стабильность: Некоторые обновления могут приводить к сбоям и багам.
Понимание этих причин поможет определить, стоит ли отключать автообновления и для каких плагинов.
Стандартные способы отключения автоматических обновлений плагинов
Отключение через админ-панель WordPress (начиная с версии 5.5)
Начиная с WordPress 5.5, появилась возможность включать или отключать автообновления для каждого плагина через интерфейс.
Чтобы отключить автообновления:
- Перейдите в раздел Плагины > Установленные плагины.
- Найдите нужный плагин и в колонке «Автообновления» нажмите на ссылку «Отключить».
Этот способ самый простой, но не всегда удобен при необходимости массовых изменений.
Отключение с помощью фильтров в functions.php
Для тонкого контроля можно использовать хуки WordPress, отключая автообновления программно. Ниже пример, как отключить автообновления для конкретного плагина:
add_filter('auto_update_plugin', 'wpbegin_disable_auto_update_for_plugin', 10, 2);
function wpbegin_disable_auto_update_for_plugin($update, $item) {
// Замените на точный путь плагина, например 'akismet/akismet.php'
$plugin_to_disable = 'akismet/akismet.php';
if ($item->plugin === $plugin_to_disable) {
return false; // Отключаем автообновление для этого плагина
}
return $update; // Для остальных плагинов оставляем стандартное поведение
}
Этот код нужно добавить в файл functions.php активной темы или в собственный плагин.
Полное отключение автообновлений для всех плагинов
Если нужно отключить автообновления всех плагинов, можно вернуть false во всех случаях:
add_filter('auto_update_plugin', '__return_false');
Но такой подход не рекомендуется, так как вы лишаетесь важнейших обновлений безопасности.
Управление автообновлениями с помощью плагинов
Существуют специализированные плагины, позволяющие гибко управлять автообновлениями без правки кода:
- Easy Updates Manager — мощный инструмент для настройки и отключения автообновлений любого типа (плагины, темы, ядро).
- WP Auto Update Control — более простой, но удобный для отключения автообновлений плагинов и тем.
Использование таких плагинов подходит для пользователей, которые не хотят погружаться в код, но при этом хотят контролировать обновления.
Риски и рекомендации при отключении автообновлений
Отключая автообновления, вы берёте ответственность за своевременное обновление плагинов вручную. Это важно, так как устаревшие версии часто содержат уязвимости, которые могут привести к взлому сайта.
Рекомендуется:
- Создавать бэкапы перед обновлениями;
- Тестировать обновления на локальной или тестовой копии сайта;
- Регулярно проверять наличие обновлений и изучать их изменения;
- Использовать инструменты контроля версий и автоматизации для крупных проектов.
Пример комплексного решения: отключение автообновлений для выбранных плагинов с логированием
Ниже пример кода, который отключает автообновления для нескольких плагинов и записывает в лог информацию об отключении:
add_filter('auto_update_plugin', 'wpbegin_control_auto_update_plugins', 10, 2);
function wpbegin_control_auto_update_plugins($update, $item) {
$plugins_to_disable = [
'akismet/akismet.php',
'contact-form-7/wp-contact-form-7.php'
];
if (in_array($item->plugin, $plugins_to_disable)) {
error_log('Автообновление отключено для плагина: ' . $item->plugin);
return false;
}
return $update;
}
Код помогает мониторить отключения и при необходимости быстро исправлять ситуацию.
Итоги
Отключение автоматических обновлений плагинов в WordPress — задача, требующая аккуратности и понимания последствий. В статье мы рассмотрели несколько способов: от стандартного интерфейса до кода и плагинов, а также рекомендации по безопасности и управлению. Выбор конкретного метода зависит от ваших задач, опыта и инфраструктуры сайта.