Автоматизация обновления плагинов в WordPress с помощью кода

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

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

Автоматизация обновлений позволяет:

  • Обеспечить своевременное получение новых функций и исправлений безопасности.
  • Минимизировать риски уязвимостей из-за устаревших версий.
  • Снизить нагрузку на администратора сайта, экономя время.
  • Уменьшить вероятность человеческой ошибки при обновлениях.

Однако автоматизация должна быть реализована аккуратно, чтобы избежать конфликтов и сбоев на сайте.

Как включить автоматическое обновление плагинов через functions.php

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

add_filter('auto_update_plugin', '__return_true');

Этот фильтр WordPress включает автообновления для всех плагинов. Однако такой подход не даёт гибкости — все плагины обновляются без исключений, что не всегда удобно.

Гибкая настройка автообновлений плагинов

Если нужно обновлять только определённые плагины, можно реализовать фильтр с проверкой имени плагина:

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

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

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

Отслеживание результатов обновления плагинов

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

Пример записи результатов обновления в файл лога:

function wpbook_log_plugin_update( $upgrader_object, $options ) {
    if ( $options['action'] == 'update' && $options['type'] == 'plugin' ) {
        $log_file = WP_CONTENT_DIR . '/plugin-update-log.txt';
        $message = date('Y-m-d H:i:s') . ' - Обновлены плагины: ' . implode(', ', $options['plugins']) . "\n";
        file_put_contents( $log_file, $message, FILE_APPEND );
    }
}
add_action( 'upgrader_process_complete', 'wpbook_log_plugin_update', 10, 2 );

Такой подход позволяет быстро увидеть, какие плагины и когда обновлялись.

Резервное копирование перед обновлением

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

Для автоматизации резервного копирования можно использовать плагин Backup WPBook — он позволяет создавать копии базы данных и файлов по расписанию. Или настроить собственный скрипт с помощью WP-Cron.

Советы по безопасности при автообновлениях

Несколько рекомендаций для безопасной автоматизации обновлений:

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

Пример комплексного решения автоматизации обновлений плагинов

Ниже пример кода, который включает:

  • Автоматическое обновление выбранных плагинов.
  • Логирование обновлений.
  • Отправку уведомления администратору.
function wpbook_auto_update_selected_plugins( $update, $item ) {
    $plugins_to_update = array(
        'contact-form-7/wp-contact-form-7.php',
        'akismet/akismet.php'
    );
    return in_array( $item->plugin, $plugins_to_update );
}
add_filter( 'auto_update_plugin', 'wpbook_auto_update_selected_plugins', 10, 2 );

function wpbook_log_and_notify_plugin_update( $upgrader, $options ) {
    if ( $options['action'] == 'update' && $options['type'] == 'plugin' ) {
        $updated_plugins = implode(', ', $options['plugins']);
        $message = date('Y-m-d H:i:s') . ' - Обновлены плагины: ' . $updated_plugins . "\n";
        $log_file = WP_CONTENT_DIR . '/plugin-update-log.txt';
        file_put_contents( $log_file, $message, FILE_APPEND );

        // Отправка email администратору
        $admin_email = get_option('admin_email');
        wp_mail( $admin_email, 'Обновление плагинов WordPress', $message );
    }
}
add_action( 'upgrader_process_complete', 'wpbook_log_and_notify_plugin_update', 10, 2 );

Такой подход обеспечит контроль и безопасность при автоматическом обновлении плагинов.

Заключение

Автоматизация обновления плагинов в WordPress с помощью собственного кода — удобный и гибкий способ поддерживать сайт в актуальном и безопасном состоянии. Главное — внимательно подойти к выбору плагинов для автообновления и не забывать про резервное копирование.

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

Добавь в закладки и поделись с друзьями:

⭐⭐⭐⭐⭐
Как создать автоматический импорт записей из XML в WordPress
29.01.2026
Как автоматизировать обновление плагинов в WordPress без плагинов
03.01.2026
Как использовать хук в WordPress для динамического изменения meta title
14.02.2026
Как использовать хуки в WordPress для расширения функциональности
11.11.2025
Как удалить неиспользуемые изображения в WordPress и освободить место
23.12.2025
×

AI-плагин

WPGPT
Сам создает статьи для вашего сайта WordPress

SEO и мета-теги

Парсинг конкурентов

Изображения

Комментарии

Подробнее