wpmoney.ru wordpress WP Money

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

Автоматические обновления в WordPress значительно упрощают поддержку сайта в актуальном состоянии и повышают безопасность. Однако бывают ситуации, когда необходимо отключить автоматическое обновление плагинов, например, чтобы избежать несовместимости с темой или кастомными решениями. В этой статье рассмотрим, как программно отключить автоматические обновления плагинов в WordPress, сохранив при этом включенными обновления ядра и тем, если это нужно.

Почему может понадобиться отключить автоматические обновления плагинов

Несмотря на удобство автоматических обновлений, они могут привести к проблемам:

  • Обновление плагина, несовместимого с текущей версией темы или ядра, может сломать сайт.
  • Кастомные изменения в плагинах будут перезаписаны.
  • Некоторые плагины требуют тестирования перед обновлением.

Поэтому важно иметь возможность тонко управлять автоматическими обновлениями, отключая их для отдельных плагинов или всех сразу.

Как отключить глобальные автоматические обновления плагинов через фильтр

Самый простой способ отключить все автоматические обновления плагинов — использовать фильтр auto_update_plugin. Добавьте следующий код в файл functions.php вашей темы или в отдельный site-specific плагин:

function wpmoney_disable_all_plugin_auto_updates( $update, $item ) {
    return false; // Отключаем обновления для всех плагинов
}
add_filter( 'auto_update_plugin', 'wpmoney_disable_all_plugin_auto_updates', 10, 2 );

Этот код сообщает WordPress не выполнять автоматическое обновление для любого плагина. При этом автоматические обновления ядра и тем остаются включенными.

Как отключить автоматические обновления только для конкретных плагинов

Если нужно отключить автообновления только для отдельных плагинов, например, для WooCommerce или Contact Form 7, можно добавить фильтр с проверкой их слага (идентификатора). Пример:

function wpmoney_disable_auto_update_for_selected_plugins( $update, $item ) {
    // Список плагинов для отключения автообновлений
    $excluded_plugins = array(
        'woocommerce/woocommerce.php',
        'contact-form-7/wp-contact-form-7.php'
    );

    if ( in_array( $item->plugin, $excluded_plugins ) ) {
        return false;
    }
    return $update;
}
add_filter( 'auto_update_plugin', 'wpmoney_disable_auto_update_for_selected_plugins', 10, 2 );

Этот код проверяет плагин и отключает автоматические обновления только для тех, что указаны в массиве $excluded_plugins.

Как проверить slug плагина для отключения автообновления

Чтобы узнать точное имя плагина (slug), необходимое для фильтра, можно посмотреть в папке wp-content/plugins или в списке установленных плагинов в админке. Имя состоит из папки плагина и файла, например, plugin-folder/plugin-file.php.

Для более удобного поиска можно временно добавить отладочный код:

add_action( 'admin_init', function() {
    $all_plugins = get_plugins();
    echo '<pre>';
    print_r( array_keys($all_plugins) );
    echo '</pre>';
});

При обновлении страницы в админке вы увидите список всех плагинов с их путями.

Как включить автоматические обновления для определённых плагинов при общем отключении

Если вы отключили автообновления глобально, но хотите включить их для некоторых плагинов, можно комбинировать фильтры:

function wpmoney_control_plugin_auto_updates( $update, $item ) {
    $plugins_to_exclude = array(
        'some-plugin/some-plugin.php'
    );
    $plugins_to_include = array(
        'important-plugin/important-plugin.php'
    );

    if ( in_array( $item->plugin, $plugins_to_exclude ) ) {
        return false; // Отключаем автообновления
    }
    if ( in_array( $item->plugin, $plugins_to_include ) ) {
        return true; // Включаем автообновления
    }
    return false; // По умолчанию отключаем
}
add_filter( 'auto_update_plugin', 'wpmoney_control_plugin_auto_updates', 10, 2 );

Этот код позволяет гибко управлять обновлениями по плагинам.

Использование плагина Clearfy для управления автообновлениями

Если предпочитаете не писать код, можно воспользоваться плагином Clearfy Pro. Он позволяет удобно включать или отключать автоматические обновления для плагинов, тем и самого ядра через интерфейс админки.

Clearfy также помогает оптимизировать сайт и отключить лишние функции WordPress, которые могут замедлять работу.

Как проверить статус автоматических обновлений плагинов

Для контроля можно использовать WP-CLI команду:

wp plugin list --format=json | jq '.[] | {name: .name, auto_update: .auto_update}'

Или в админке перейти в раздел «Плагины» и посмотреть соответствующие метки.

Выводы и рекомендации

Отключение автоматических обновлений плагинов полезно для предотвращения внезапных проблем с сайтом. Однако не забывайте регулярно вручную обновлять плагины, чтобы поддерживать безопасность и работоспособность.

Используйте фильтр auto_update_plugin для тонкого управления обновлениями и рассмотрите плагин Clearfy Pro для удобного управления без кода.

×

AI-плагин от WPShop.ru

анализирует конкурентов

пишет статьи

готовит SEO

генерирует изображения

и еще кое-что...
WPGPT
Плагин, который наполняет ваш сайт WordPress
Узнать больше