Автоматические обновления WordPress — это важный механизм, обеспечивающий безопасность и стабильность сайта. Однако в ряде случаев может потребоваться отключить их, например, для предотвращения конфликтов с кастомными настройками, или для контроля за процессом обновления. В этой статье мы разберём, как отключить автоматические обновления WordPress без использования плагинов, используя только код.
Что такое автоматические обновления в WordPress и зачем их отключать
По умолчанию WordPress автоматически обновляет мелкие версии ядра, а начиная с версии 5.5 и выше, частично обновляет плагины и темы. Это помогает поддерживать сайт в безопасности без лишнего вмешательства. Но бывают ситуации, когда автоматические обновления мешают:
- Кастомизированные темы и плагины могут сломаться после обновления.
- На хостинге с ограниченными ресурсами обновление может привести к ошибкам.
- Необходимость тестировать обновления на тестовом сервере перед продакшеном.
В таких случаях разумнее отключить автоматические обновления и производить их вручную.
Отключение автоматических обновлений ядра WordPress
Чтобы полностью отключить автоматические обновления ядра WordPress, нужно добавить специальный фильтр в файл functions.php вашей темы или в файл вашего собственного плагина. Используем функцию с префиксом wpscan для удобства:
function wpscan_disable_auto_core_updates( $update, $item ) {
return false; // Отключаем все обновления ядра
}
add_filter( 'auto_update_core', 'wpscan_disable_auto_core_updates', 10, 2 );Этот фильтр вернёт false для любых попыток обновления ядра, отключая как минорные, так и мажорные обновления. Если нужно отключить только минорные, оставив критические, можно использовать фильтр allow_minor_auto_core_updates:
add_filter( 'allow_minor_auto_core_updates', '__return_false' );Но для полного контроля лучше использовать первый вариант.
Отключение автоматических обновлений плагинов и тем
Начиная с WordPress 5.5, появилась возможность автоматического обновления плагинов и тем. По умолчанию это отключено, но некоторые хостинги или плагины могут включать эту функцию. Чтобы гарантированно отключить автообновления для плагинов и тем через код, добавьте следующие фильтры:
add_filter( 'auto_update_plugin', '__return_false' );
add_filter( 'auto_update_theme', '__return_false' );Это полностью запретит автоматические обновления для всех плагинов и тем.
Отключение автообновлений выборочно
Если необходимо отключить автообновления не для всех плагинов, а для конкретных, можно использовать более сложный фильтр с проверкой имени плагина. Вот пример, как отключить автообновление только для плагина WooCommerce:
function wpscan_disable_auto_update_for_specific_plugin( $update, $item ) {
if ( isset( $item->slug ) && $item->slug === 'woocommerce' ) {
return false; // Отключаем автообновление WooCommerce
}
return $update; // для остальных плагинов оставляем как есть
}
add_filter( 'auto_update_plugin', 'wpscan_disable_auto_update_for_specific_plugin', 10, 2 );Аналогично можно сделать и для тем, проверяя $item->slug.
Отключение автоматического обновления переводов WordPress
WordPress также автоматически обновляет языковые файлы. Если это вызывает проблемы, можно отключить и их:
add_filter( 'auto_update_translation', '__return_false' );Отключение автообновлений через файл wp-config.php
Если вы не хотите использовать фильтры, можно запретить автообновления напрямую через wp-config.php. Для этого добавьте туда следующие константы:
// Отключить все автоматические обновления
#define( 'WP_AUTO_UPDATE_CORE', false );<Однако этот способ отключает только обновления ядра, а плагины и темы надо контролировать отдельно через фильтры.
Проверка работы отключения обновлений
После внесения изменений всегда проверяйте, что автообновления действительно отключены. Для этого можно использовать консоль WP-CLI или просмотреть логи обновлений. Также стоит протестировать на тестовом сайте, чтобы убедиться, что никаких ошибок не возникает.
Пример проверки через WP-CLI
Выполните команду:
wp core check-update
wp plugin list --update=availableЕсли обновления доступны, они не будут устанавливаться автоматически.
Резюме и рекомендации
Отключение автоматических обновлений в WordPress — полезная мера для разработчиков и владельцев сайтов с особенными требованиями. Использование кода вместо плагинов снижает нагрузку и упрощает поддержку. Главное — не забывать регулярно вручную проверять и применять обновления для безопасности.
В этой статье мы рассмотрели:
- Как отключить автоматические обновления ядра WordPress.
- Как запретить автообновления плагинов и тем полностью и выборочно.
- Как отключить автообновления переводов.
- Какие есть альтернативы в виде настроек через
wp-config.php.
Следуя этим рекомендациям, вы сможете гибко управлять процессом обновлений WordPress без плагинов.