Автоматические обновления в WordPress помогают поддерживать сайт в актуальном и безопасном состоянии, однако в некоторых случаях возникает необходимость полностью или частично их отключить. Это может быть связано с конфликтами плагинов, особенностями кастомных разработок или требованиями хостинга. В этой статье мы подробно разберём, как отключить автоматические обновления для ядра WordPress, плагинов и тем с помощью кода, а также рассмотрим примеры фильтров и хуков.
Почему стоит контролировать автоматические обновления WordPress
Автоматические обновления повышают безопасность вашего сайта, но не всегда проходят гладко. Иногда обновления приводят к несовместимости, сбоям в работе плагинов или тем. При работе с кастомными решениями важно тщательно тестировать новые версии, поэтому отключение автообновлений помогает избежать неожиданных проблем.
Кроме того, на некоторых хостингах могут быть ограничения, из-за которых автоматические обновления вызывают ошибки. Контроль над процессом обновления позволяет запускать его в удобное время и с предварительной проверкой.
Отключение автоматических обновлений ядра WordPress
Для полного отключения автообновлений ядра WordPress достаточно добавить в файл functions.php вашей активной темы или в отдельный плагин следующий фильтр:
function wpcontrol_disable_core_updates( $update, $item ) {
if ( isset( $item->type ) && 'core' === $item->type ) {
return false;
}
return $update;
}
add_filter( 'auto_update_core', '__return_false' );
add_filter( 'allow_dev_auto_core_updates', '__return_false' );
Этот код отключает все типы автоматических обновлений ядра, включая минорные и мажорные версии.
Отключение только мажорных или минорных обновлений
Если необходимо, например, разрешить минорные обновления, но запретить мажорные, можно использовать более точечный фильтр:
add_filter( 'allow_major_auto_core_updates', '__return_false' );
add_filter( 'allow_minor_auto_core_updates', '__return_true' );
Так вы сохраните автоматическое исправление безопасности, но предотвратите обновление до следующей крупной версии.
Отключение автоматических обновлений плагинов
По умолчанию начиная с WordPress 5.5 есть возможность автоматического обновления плагинов. Чтобы полностью отключить автообновления плагинов, примените следующий фильтр:
add_filter( 'auto_update_plugin', '__return_false' );
Этот код отключит автоматическое обновление всех плагинов. Если же нужно отключить автообновления для конкретных плагинов, воспользуйтесь условием:
function wpcontrol_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, true ) ) {
return false;
}
return $update;
}
add_filter( 'auto_update_plugin', 'wpcontrol_disable_plugin_auto_update', 10, 2 );
<В массиве $plugins_to_disable указывайте пути к плагинам, для которых нужно отключить автообновления.
Отключение автоматических обновлений тем
Аналогично с плагинами, для тем есть свой фильтр для управления автообновлениями:
add_filter( 'auto_update_theme', '__return_false' );
Чтобы отключить автообновления только для некоторых тем, используйте следующий пример:
function wpcontrol_disable_theme_auto_update( $update, $item ) {
$themes_to_disable = array('twentytwentyone', 'twentytwentytwo');
if ( in_array( $item->theme, $themes_to_disable, true ) ) {
return false;
}
return $update;
}
add_filter( 'auto_update_theme', 'wpcontrol_disable_theme_auto_update', 10, 2 );
<В $themes_to_disable указывайте имена тем, для которых не нужны автообновления.
Управление автообновлениями с помощью плагинов
Если вы хотите более гибко управлять автоматическими обновлениями без правки кода, можно использовать плагины. Например, Clearfy Pro из каталога wpshop.ru позволяет удобно отключать автообновления для ядра, плагинов и тем через интерфейс, а также предлагает множество оптимизаций для WordPress.
Также есть популярный плагин Easy Updates Manager, который даёт детальный контроль над всеми обновлениями, включая трансляцию уведомлений и исключения для отдельных компонентов.
Практические советы и рекомендации
При отключении автоматических обновлений обязательно учитывайте риски безопасности. Обновления часто закрывают критические уязвимости, поэтому не забывайте регулярно проверять доступные апдейты и обновлять их вручную.
Рекомендуется тестировать обновления на тестовом сайте, прежде чем применять на продакшене. Если вы используете кастомные темы или плагины, убедитесь, что они совместимы с последними версиями WordPress и обновляйте их вручную после тестирования.
Также полезно включать уведомления администратора о новых доступных обновлениях, чтобы не пропустить важные релизы.
Итоговые примеры кода для отключения автообновлений
<?php
// Отключить все автоматические обновления ядра
add_filter( 'auto_update_core', '__return_false' );
// Отключить автообновления всех плагинов
add_filter( 'auto_update_plugin', '__return_false' );
// Отключить автообновления всех тем
add_filter( 'auto_update_theme', '__return_false' );
?>
Добавьте этот код в файл functions.php вашей темы или в отдельный плагин для контроля автообновлений на вашем сайте.