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

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

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

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

  • Выбирать, какие плагины обновлять автоматически, а какие — нет.
  • Логировать процесс обновления и получать уведомления о результатах.
  • Иметь возможность быстро откатить обновление в случае проблем.

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

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

В WordPress есть встроенный фильтр auto_update_plugin, который позволяет включать или отключать автообновления для каждого плагина индивидуально. Рассмотрим пример функции для wpwp, которая включает автообновление только для определённых плагинов.

function wpwp_auto_update_selected_plugins( $update, $item ) {
    // Список плагинов для автоматического обновления (идентификаторы файлов плагинов)
    $allowed_plugins = [
        'akismet/akismet.php',
        'contact-form-7/wp-contact-form-7.php',
        'wpremark/wpremark.php' // пример из WPRemark
    ];

    if ( in_array( $item->plugin, $allowed_plugins ) ) {
        return true;
    }
    return false;
}
add_filter( 'auto_update_plugin', 'wpwp_auto_update_selected_plugins', 10, 2 );

В этом коде $item->plugin — это путь к файлу плагина относительно папки plugins. Мы проверяем, входит ли плагин в разрешённый список, и если да — разрешаем автоматическое обновление.

Как узнать идентификатор плагина

Чтобы узнать идентификатор плагина (например, akismet/akismet.php), зайдите в папку wp-content/plugins и посмотрите, как называется основной файл плагина, обычно это основной PHP-файл с названием плагина.

Автоматическое обновление с логированием и уведомлениями

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

function wpwp_plugin_auto_update_complete( $upgrader_object, $options ) {
    if ( $options['action'] == 'update' && $options['type'] == 'plugin' ) {
        if ( !empty( $options['plugins'] ) ) {
            $updated_plugins = implode( ', ', $options['plugins'] );
            wp_mail(
                get_option('admin_email'),
                'Автообновление плагинов на сайте ' . get_bloginfo('name'),
                'Были автоматически обновлены следующие плагины: ' . $updated_plugins
            );
        }
    }
}
add_action( 'upgrader_process_complete', 'wpwp_plugin_auto_update_complete', 10, 2 );

Эта функция срабатывает после завершения процесса обновления и отправляет письмо на email администратора с перечнем обновлённых плагинов.

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

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

  • Clearfy Pro — плагин для оптимизации и управления безопасностью, включая гибкую настройку автообновлений.
  • WPRemark — плагин отзывов, который сам по себе регулярно обновляется и может быть добавлен в список автообновляемых.

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

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

Иногда нужно исключить определённые плагины из обновлений, например, если вы модифицировали их вручную или они критичны для работы сайта. Для этого можно использовать тот же фильтр, но с обратной логикой:

function wpwp_disable_auto_update_for_plugins( $update, $item ) {
    $excluded_plugins = [
        'my-custom-plugin/my-custom-plugin.php',
        'some-plugin/some-plugin.php'
    ];

    if ( in_array( $item->plugin, $excluded_plugins ) ) {
        return false; // запрещаем автообновление
    }
    return $update; // сохраняем текущее состояние для остальных
}
add_filter( 'auto_update_plugin', 'wpwp_disable_auto_update_for_plugins', 10, 2 );

Так вы гарантируете, что эти плагины не будут обновлены автоматически, что предотвращает возможные сбои.

Рекомендации по безопасности и резервному копированию

Перед включением автоматических обновлений важно:

  • Настроить ежедневное резервное копирование сайта и базы данных. Это поможет быстро восстановить сайт в случае неудачного обновления.
  • Тестировать обновления на тестовом сайте или локальной копии перед применением на боевом окружении.
  • Использовать уведомления, чтобы своевременно узнавать о результатах обновлений.

Также стоит периодически проверять совместимость плагинов и темы, чтобы избежать конфликтов.

Итог

Автоматическое обновление плагинов в WordPress — мощный инструмент, который при правильной настройке и контроле экономит массу времени и снижает риски безопасности. Используйте фильтры auto_update_plugin для гибкой настройки, добавляйте логирование и уведомления, а при необходимости — управляйте обновлениями через специализированные плагины, такие как Clearfy Pro. Не забывайте про резервное копирование и тестирование обновлений, чтобы ваш сайт оставался стабильным и защищённым.

Как удалить meta robots из WordPress на конкретных страницах
20.01.2026
Использование внутренних категорий в WordPress для эффективной организации контента
30.03.2026
Как создать динамические скрипты в WordPress без плагинов
03.03.2026
WooCommerce: как использовать хуки для добавления собственного контента в страницы товара
23.04.2026
Как удалить пустые теги HTML в WordPress
29.01.2026