Автоматическое обновление плагинов в WordPress — полезная функция для безопасности и стабильности сайта, однако в ряде случаев может приводить к неожиданным конфликтам и ошибкам. В этой статье подробно разберём, как отключить автоматическое обновление плагинов WordPress, чтобы контролировать процесс обновления вручную и избежать сбоев.
Что такое автоматическое обновление плагинов WordPress и зачем его отключать?
Начиная с версии 5.5 WordPress по умолчанию включает возможность автоматического обновления отдельных плагинов и тем. Это помогает поддерживать сайт в актуальном состоянии и уменьшает риски безопасности. Однако:
- Автоматические обновления плагинов иногда вызывают несовместимости с текущей версией WordPress или другими плагинами.
- Некоторые кастомные плагины могут быть не готовы к автоматическим обновлениям.
- Администраторы сайтов хотят тестировать обновления в контролируемой среде перед применением на продакшене.
В этих случаях отключение автообновлений — разумное решение.
Как отключить автоматическое обновление всех плагинов через functions.php
Самый простой способ — добавить в файл functions.php вашей активной темы код, который отключит автообновления плагинов целиком:
function wpmonitor_disable_all_plugin_auto_updates( $update, $item ) {
return false;
}
add_filter( 'auto_update_plugin', 'wpmonitor_disable_all_plugin_auto_updates', 10, 2 );Этот фильтр возвращает false для всех попыток автообновления плагинов. После добавления кода WordPress перестанет обновлять плагины автоматически.
Важно: изменения в functions.php можно потерять при смене темы, поэтому лучше использовать дочернюю тему или собственный плагин.
Отключение автообновления конкретных плагинов
Если нужно отключить автообновление только для отдельных плагинов, можно сделать так:
function wpmonitor_disable_specific_plugin_auto_updates( $update, $item ) {
$plugins_to_disable = [
'akismet/akismet.php',
'hello-dolly/hello.php',
];
if ( in_array( $item->plugin, $plugins_to_disable, true ) ) {
return false;
}
return $update;
}
add_filter( 'auto_update_plugin', 'wpmonitor_disable_specific_plugin_auto_updates', 10, 2 );Здесь в массиве $plugins_to_disable перечисляем пути к плагинам, для которых отключаем автообновления. Остальные плагины будут обновляться автоматически.
Отключение автообновлений через wp-config.php
Можно запретить автообновления плагинов на уровне конфигурации WordPress, добавив в wp-config.php:
define( 'AUTOMATIC_UPDATER_DISABLED', true );Эта константа полностью отключит все автоматические обновления, включая плагины, темы и ядро. Это менее гибкий вариант, но подходит для полного контроля.
Использование плагинов для управления автообновлениями
Для удобства контроля рекомендуется использовать специализированные плагины. Например:
- Enable/Disable Auto Updates — простой плагин с интерфейсом для включения и отключения автообновлений для каждого плагина и темы.
- Clearfy Pro — мощный инструмент оптимизации, который среди прочего позволяет гибко настраивать автообновления и отключать их с удобным интерфейсом.
Преимущество плагинов в том, что не приходится править код вручную и есть визуальный контроль.
Практические советы и рекомендации
Перед отключением автообновлений обязательно:
- Создайте резервную копию сайта и базы данных.
- Тестируйте обновления на тестовом сервере.
- Убедитесь, что у вас есть план регулярного ручного обновления плагинов для безопасности.
Также для критичных проектов рекомендовано использовать staging-среды, где обновления проверяются перед выкатом на продакшен.
Пример собственного плагина для отключения автообновлений плагинов
Если хотите сделать из кода удобный плагин, создайте файл wpmonitor-disable-plugin-auto-updates.php с содержимым:
<?php
/**
* Plugin Name: WPMonitor Disable Plugin Auto Updates
* Description: Отключает автоматическое обновление всех плагинов.
* Version: 1.0
* Author: WPMonitor
*/
function wpmonitor_disable_all_plugin_auto_updates( $update, $item ) {
return false;
}
add_filter( 'auto_update_plugin', 'wpmonitor_disable_all_plugin_auto_updates', 10, 2 );Активируйте этот плагин, и все автообновления плагинов будут отключены без вмешательства в тему.