wpcontrol.ru wordpress WPControl.ru

Как отключить автоматические обновления в WordPress с помощью кода

Автоматические обновления в 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 вашей темы или в отдельный плагин для контроля автообновлений на вашем сайте.

×
WordPress
дай сайту суперсилу!

Скидки на топовые темы и плагины

Активировать суперсилу ⋙