Автоматические обновления в WordPress призваны повысить безопасность и стабильность сайта, но иногда они могут вызвать конфликты с кастомными решениями или привести к неожиданным проблемам. В этой статье рассмотрим, как правильно отключить автоматические обновления ядра, плагинов и тем с помощью кода, чтобы сохранить контроль над процессом обновлений.
Почему стоит отключать автоматические обновления в WordPress
Хотя автоматические обновления полезны для безопасности, бывают ситуации, когда разработчикам или администраторам нужно их отключить:
- Нестабильность кастомных плагинов или тем после обновлений.
- Необходимость проводить тестирование обновлений на тестовом сервере перед запуском на продакшене.
- Использование специфичных версий плагинов или тем, которые могут перестать работать после обновления.
Отключение автоматических обновлений позволяет контролировать процесс и планировать обновления в удобное время.
Отключение автоматических обновлений ядра WordPress
Для отключения автоматических обновлений ядра WordPress можно использовать фильтр auto_update_core. Добавьте следующий код в файл functions.php вашей темы или в отдельный плагин:
add_filter('auto_update_core', '__return_false');Этот фильтр полностью отключит автоматические обновления ядра, включая минорные и мажорные версии. Если вы хотите отключить только мажорные обновления, оставив минорные (которые часто содержат важные исправления безопасности), используйте так:
add_filter('allow_major_auto_core_updates', '__return_false');Таким образом, минорные обновления будут устанавливаться автоматически, но мажорные — нет.
Отключение автоматических обновлений плагинов и тем
WordPress с версии 5.5 поддерживает автоматические обновления для плагинов и тем. Их можно отключить с помощью фильтров auto_update_plugin и auto_update_theme. Пример кода для полного отключения:
add_filter('auto_update_plugin', '__return_false');
add_filter('auto_update_theme', '__return_false');Если вы хотите отключить обновления для отдельных плагинов или тем, можно добавить логику в фильтры. Например, отключим обновления только для плагина Contact Form 7:
add_filter('auto_update_plugin', 'wpaction_disable_cf7_update', 10, 2);
function wpaction_disable_cf7_update($update, $item) {
if ($item->slug === 'contact-form-7') {
return false;
}
return $update;
}Аналогично для темы, например, отключим обновления темы Twenty Twenty-One:
add_filter('auto_update_theme', 'wpaction_disable_twenty_twenty_one_update', 10, 2);
function wpaction_disable_twenty_twenty_one_update($update, $theme) {
if ($theme->stylesheet === 'twentytwentyone') {
return false;
}
return $update;
}Отключение автоматических обновлений с помощью констант в wp-config.php
Помимо фильтров, можно использовать константы в файле wp-config.php для контроля обновлений:
define('AUTOMATIC_UPDATER_DISABLED', true);— отключает все автоматические обновления (ядро, плагины, темы).define('WP_AUTO_UPDATE_CORE', false);— отключает автоматические обновления ядра.
Пример использования:
define('AUTOMATIC_UPDATER_DISABLED', true);Этот способ более жесткий и отключит все автоматические обновления без исключений.
Практические рекомендации и советы
Отключая автоматические обновления, важно помнить о безопасности сайта:
- Регулярно проверяйте обновления вручную и тестируйте их на тестовом сервере.
- Используйте плагины для мониторинга новых версий, например, Clearfy, который помогает управлять обновлениями и оптимизировать сайт.
- Автоматизируйте резервное копирование перед обновлениями, чтобы избежать потери данных.
Пример комбинированного кода для отключения обновлений с исключениями
Ниже пример, который отключает автоматические обновления ядра и плагинов, кроме плагина безопасности Wordfence, обновления которого разрешены:
add_filter('auto_update_core', '__return_false');
add_filter('auto_update_plugin', 'wpaction_allow_wordfence_update', 10, 2);
function wpaction_allow_wordfence_update($update, $item) {
if ($item->slug === 'wordfence') {
return true;
}
return false;
}Такой подход дает гибкость управления обновлениями на уровне отдельных компонентов.
Выводы
Отключение автоматических обновлений в WordPress — важный инструмент для контроля стабильности и совместимости сайта. Используйте фильтры и константы, чтобы настроить обновления под свои задачи, не забывая при этом про регулярный аудит и тестирование обновлений. Инструменты типа Clearfy помогут упростить управление обновлениями и сохранить безопасность вашего сайта.