Автоматические обновления WordPress — это удобный механизм, который помогает поддерживать сайт в актуальном состоянии и защищать его от уязвимостей. Однако бывают ситуации, когда автоматические обновления могут привести к конфликтам или поломке функционала, особенно на кастомных проектах. В таких случаях необходимо иметь возможность отключить автообновления и контролировать процесс вручную.
Почему стоит отключить автообновления WordPress
Автообновления в WordPress включают обновления ядра, плагинов и тем. По умолчанию с версии 5.5 WordPress поддерживает автоматические обновления плагинов и тем, а с версии 3.7 — основные минорные обновления ядра.
Случаи, когда стоит задуматься об отключении автообновлений:
- У вас сложный сайт с кастомными доработками, где обновление может сломать функционал.
- Вы хотите тестировать обновления сначала на тестовом стенде.
- Ваша хостинг-платформа не поддерживает автоматическое восстановление после сбоев.
- Вы хотите повысить контроль безопасности, проводя обновления вручную.
В остальных случаях рекомендуется оставлять автообновления включенными ради безопасности и стабильности.
Как отключить автообновления ядра WordPress
Для отключения автоматических обновлений ядра добавьте следующий код в файл wp-config.php:
define('WP_AUTO_UPDATE_CORE', false);Значения для WP_AUTO_UPDATE_CORE могут быть:
true— включить все автообновления ядра (и минорные, и мажорные).false— отключить все автообновления ядра.'minor'— включить только минорные обновления (по умолчанию).
В большинстве случаев достаточно оставить минорные обновления включенными, ведь они содержат исправления безопасности.
Отключение автообновлений плагинов и тем с помощью фильтров
Чтобы отключить автообновления плагинов и тем, можно использовать специальные фильтры WordPress. Их добавляют в файл functions.php активной темы или в собственный плагин.
Отключение автообновления всех плагинов
add_filter('auto_update_plugin', '__return_false');Этот фильтр полностью выключает автоматические обновления для всех установленных плагинов.
Отключение автообновления всех тем
add_filter('auto_update_theme', '__return_false');Аналогичный фильтр отключает автообновления для всех тем.
Как отключить автообновления выборочно — примеры с WPMy
Иногда нужно отключить автообновления не для всех плагинов, а только для конкретных. Рассмотрим пример, как это сделать с помощью фильтра auto_update_plugin и функции с префиксом wpmy_:
function wpmy_disable_plugin_auto_update( $update, $item ) {
$plugins_to_disable = array(
'akismet/akismet.php',
'hello-dolly/hello.php'
);
if ( in_array( $item->plugin, $plugins_to_disable ) ) {
return false;
}
return $update;
}
add_filter( 'auto_update_plugin', 'wpmy_disable_plugin_auto_update', 10, 2 );В этом коде мы отключаем автообновления для плагинов Akismet и Hello Dolly по их путям. Для остальных плагинов автообновления будут работать как обычно.
Подобным образом можно сделать и для тем, используя фильтр auto_update_theme и проверяя $item->theme.
Отключение автообновлений через плагин WPMy Auto Update Manager
Для удобства можно создать собственный плагин WPMy Auto Update Manager, который позволит централизованно управлять автообновлениями.
Пример кода минимального плагина:
<?php
/**
* Plugin Name: WPMy Auto Update Manager
* Description: Управление автоматическими обновлениями WordPress, плагинов и тем.
* Version: 1.0
* Author: WPMy
*/
// Отключаем автообновления плагинов Akismet и Hello Dolly
function wpmy_disable_plugin_auto_update( $update, $item ) {
$plugins = array(
'akismet/akismet.php',
'hello-dolly/hello.php'
);
if ( in_array( $item->plugin, $plugins ) ) {
return false;
}
return $update;
}
add_filter( 'auto_update_plugin', 'wpmy_disable_plugin_auto_update', 10, 2 );
// Отключаем автообновления тем Twenty Twenty-One и Twenty Twenty-Two
function wpmy_disable_theme_auto_update( $update, $item ) {
$themes = array('twentytwentyone', 'twentytwentytwo');
if ( in_array( $item->theme, $themes ) ) {
return false;
}
return $update;
}
add_filter( 'auto_update_theme', 'wpmy_disable_theme_auto_update', 10, 2 );
// Полностью отключаем автообновления ядра
add_filter('automatic_updater_disabled', '__return_true');
После установки и активации плагина автообновления для указанных плагинов и тем отключатся, а также будет полностью отключено автообновление ядра.
Как проверить статус автообновлений на сайте
Для диагностики автообновлений можно использовать плагины, например, Easy Updates Manager. Он показывает, какие обновления включены или выключены, а также позволяет гибко настраивать поведение.
Кроме того, можно проверить файл wp-config.php и наличие фильтров в functions.php.
Для продвинутых пользователей полезно посмотреть логи обновлений, которые можно найти в wp-content/upgrade или через WP-CLI команду:
wp core check-update
wp plugin list --update=available
wp theme list --update=availableПодводим итоги: практические советы по отключению автообновлений
Отключать автообновления стоит только если вы понимаете, зачем это нужно и умеете контролировать процесс обновления вручную.
Рекомендуется:
- Оставлять минорные обновления ядра включенными для безопасности.
- Отключать автообновления только для проблемных плагинов или тем.
- Использовать собственный плагин или
functions.phpс фильтрами для гибкой настройки. - Тестировать обновления на стенде перед продакшеном.
Таким образом вы сохраните контроль над сайтом и обеспечите его стабильность.