Автоматические обновления плагинов в WordPress — это удобная функция, которая помогает поддерживать сайт в актуальном и безопасном состоянии. Однако в некоторых случаях необходимо отключить автоматические обновления, например, чтобы предотвратить возможные конфликты после обновлений или тщательно тестировать новые версии перед применением. В этой статье рассмотрим несколько способов отключения автоматического обновления плагинов с примерами кода и рекомендациями.
Почему стоит отключать автоматическое обновление плагинов
Автоматическое обновление — это хорошо, но не всегда подходит для всех сайтов. Вот основные причины, почему можно задуматься об отключении:
- Совместимость: новые версии плагинов могут конфликтовать с темой или другими плагинами.
- Тестирование: необходимость проверить обновление на локальной или тестовой среде перед применением на основном сайте.
- Критичные сайты: например, интернет-магазины, где важно стабильное функционирование без сбоев.
- Кастомные изменения: если в плагине есть локальные доработки, автоматическое обновление может их перезаписать.
Как работает автоматическое обновление плагинов в WordPress
Начиная с WordPress 5.5, появилась встроенная возможность автоматических обновлений для ядерных файлов, плагинов и тем. Для плагинов по умолчанию автоматическое обновление выключено, но может быть включено через админку или фильтры.
Для управления обновлениями используются хуки и фильтры, которые позволяют тонко настраивать поведение. Ниже рассмотрим, как с помощью кода отключить автоматические обновления для всех или отдельных плагинов.
Отключение автоматического обновления для всех плагинов через functions.php
Если нужно полностью отключить автоматические обновления плагинов, добавьте следующий код в файл functions.php вашей темы или в плагин для кастомных функций:
add_filter('auto_update_plugin', 'wpskills_auto_update_plugin_disable', 10, 2);
function wpskills_auto_update_plugin_disable($update, $item) {
return false; // Отключаем автообновление для всех плагинов
}
Этот фильтр возвращает false для всех плагинов, тем самым запрещая автоматическое обновление.
Отключение автообновления для отдельных плагинов
Иногда необходимо отключить автообновления только для конкретных плагинов. Для этого можно проверить имя плагина в условии. Например, отключим для плагина WooCommerce:
add_filter('auto_update_plugin', 'wpskills_auto_update_specific_plugin', 10, 2);
function wpskills_auto_update_specific_plugin($update, $item) {
// Проверяем, что это плагин WooCommerce
if ($item->slug === 'woocommerce') {
return false; // Отключаем автообновления для WooCommerce
}
return $update; // Для остальных оставляем как есть
}
Чтобы узнать slug плагина, можно перейти в директорию wp-content/plugins или посмотреть в репозитории WordPress.
Управление автообновлениями через плагины
Если вы предпочитаете не работать с кодом, можно воспользоваться плагинами для управления обновлениями:
- Enable Auto Updates — простой плагин для включения и отключения автообновлений отдельных плагинов.
- Companion Auto Update — расширенный функционал управления обновлениями.
- Clearfy Pro — мощный инструмент оптимизации и управления безопасностью, в том числе настройками обновлений.
Отключение автообновлений для тем и ядра WordPress
Для полноты картины приведём код, который отключает автообновления не только для плагинов, но и для тем и ядра WP:
// Отключаем автообновления плагинов
add_filter('auto_update_plugin', '__return_false');
// Отключаем автообновления тем
add_filter('auto_update_theme', '__return_false');
// Отключаем автообновления ядра (кроме безопасности)
add_filter('auto_update_core', 'wpskills_auto_update_core_disable', 10, 1);
function wpskills_auto_update_core_disable($update) {
// Отключаем все автообновления ядра, кроме минорных
return false;
}
Как проверить статус автоматических обновлений на сайте
Для проверки, включены ли автообновления для плагинов, можно использовать WP-CLI:
wp plugin list --field=auto-updates
Или посмотреть в админке WordPress в разделе Плагины — там отображается статус автообновлений для каждого плагина.
Полезные советы и рекомендации
- Перед отключением автообновлений обязательно убедитесь, что у вас есть надежное резервное копирование сайта.
- Используйте тестовую среду для проверки обновлений, если отключаете автообновления.
- Регулярно вручную проверяйте наличие важных обновлений и устанавливайте их.
- Для безопасности сайта не рекомендуется полностью отключать обновления ядра.
- Для тонкой настройки используйте фильтры с проверкой слага плагина, чтобы исключить критичные обновления.