Почему нужно исключать плагины из автоматических обновлений
Автоматические обновления плагинов в WordPress ускоряют процесс поддержки безопасности и функционала сайта. Однако не все плагины можно обновлять автоматически: некоторые, например, кастомные или плохо совместимые с текущей версией темы, требуют ручной проверки и обновления. Исключение таких плагинов из автообновлений позволяет избежать поломок и конфликтов.
Диагностика: как определить, какие плагины исключить из автообновлений
Прежде чем отключать автообновления для плагина, убедитесь, что:
- Плагин вызывает ошибки или конфликтует с сайтом после обновления.
- Плагин кастомизирован и обновление перезапишет изменения.
- Плагин не совместим с версией WordPress или PHP.
Для этого можно просмотреть логи ошибок сервера и WordPress, провести тестирование обновлений на тестовой копии сайта, проверить совместимость в описании плагина на WordPress.org или у разработчика.
Пошаговое решение: как исключить конкретные плагины из автообновлений
WordPress c версии 5.5 поддерживает автообновления плагинов через интерфейс, но для исключения отдельных плагинов из автообновления потребуется добавить код в файл functions.php вашей темы или в кастомный плагин.
Пример кода, который отключает автообновления для плагинов по их путям (slug):
add_filter('auto_update_plugin', 'disable_auto_update_for_specific_plugins', 10, 2);
function disable_auto_update_for_specific_plugins($update, $item) {
$plugins_to_disable = [
'akismet/akismet.php',
'custom-plugin/custom-plugin.php'
];
if (in_array($item->plugin, $plugins_to_disable)) {
return false; // Отключаем автообновление для этих плагинов
}
return $update;
}Объяснение:
$item->plugin— путь к плагину в форматепапка/файл.php.- В массиве
$plugins_to_disableперечислите плагины, которые хотите исключить.
Как проверить, что исключение из автообновлений работает
- В админке WordPress в разделе «Плагины» включите автообновления для всех, кроме указанных.
- Подождите запланированного автообновления (в ночное время или инициируйте вручную через WP-CLI команду
wp plugin update --all). - Убедитесь, что выбранные плагины не обновились, а остальные — обновились.
- Для более точной проверки можно временно снизить версию одного из исключённых плагинов и инициировать автообновление.
Частые ошибки и способы их исправления
- Неправильно указан путь плагина: Удостоверьтесь, что в массиве пути совпадают с точным путем к основному файлу плагина (можно посмотреть в папке
wp-content/plugins). - Кэширование: Если используются плагины кэширования или OPCache, после внесения изменений сбросьте кэш, иначе изменения не применятся.
- Код добавлен в неподходящее место: Добавляйте фильтр в
functions.phpактивной темы или в отдельный плагин, чтобы он точно выполнялся. - Конфликты с другими плагинами по управлению автообновлениями: Убедитесь, что нет плагинов с похожей функциональностью, которые могут переопределять фильтр.
Практические советы по безопасности и производительности
- Исключайте из автообновлений только те плагины, которые действительно требуют ручной проверки.
- Регулярно проверяйте наличие обновлений для исключённых плагинов и применяйте их вручную с тестированием на staging-сайте.
- Для управления автообновлениями можно использовать специализированные плагины, например, Clearfy Pro, который позволяет гибко настраивать обновления без кода.
- Не отключайте автообновления для плагинов безопасности и критически важных компонентов.
Сравнение способов управления автообновлениями плагинов
| Метод | Описание | Плюсы | Минусы |
|---|---|---|---|
| Код в functions.php | Фильтр auto_update_plugin для указания исключений | Бесплатно, гибко, без сторонних плагинов | Требует навыков PHP, возможны ошибки при неправильном коде |
| Плагины для управления обновлениями | Плагины типа Clearfy Pro с интерфейсом | Удобство, дополнительные функции безопасности | Платно, может замедлять сайт |
| Полное отключение автообновлений | Отключение через константы и фильтры | Просто реализуется | Не гибко, требует ручного обновления всех плагинов |