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

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

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

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

Однако, автоматизация требует аккуратности: обновления могут иногда приводить к несовместимостям, поэтому важно иметь возможность контролировать процесс.

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

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

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

Этот код заставляет WordPress автоматически обновлять все плагины при выходе новых версий. Однако такой подход не всегда подходит для всех сайтов.

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

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

function wprobot_auto_update_selected_plugins( $update, $item ) {
    $allowed_plugins = array(
        'akismet/akismet.php',
        'contact-form-7/wp-contact-form-7.php'
    );
    if ( in_array( $item->plugin, $allowed_plugins ) ) {
        return true;
    }
    return false;
}
add_filter( 'auto_update_plugin', 'wprobot_auto_update_selected_plugins', 10, 2 );

Таким образом, автообновления будут применяться только к плагинам из массива $allowed_plugins.

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

Если вы используете плагины, не размещённые в официальном каталоге WordPress, встроенные механизмы автообновления не сработают. Здесь на помощь приходят плагины-обновляторы или кастомные скрипты, которые проверяют новые версии на сторонних серверах.

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

Пример создания функции для принудительного обновления плагина по расписанию

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

function wprobot_force_update_plugin() {
    include_once ABSPATH . 'wp-admin/includes/plugin.php';
    include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';

    $plugin_slug = 'akismet/akismet.php'; // заменить на нужный плагин

    $upgrader = new Plugin_Upgrader( new Automatic_Upgrader_Skin() );
    $result = $upgrader->upgrade( $plugin_slug );

    if ( is_wp_error( $result ) ) {
        error_log( 'Ошибка обновления плагина: ' . $result->get_error_message() );
    } elseif ( $result === true ) {
        error_log( 'Плагин успешно обновлён' );
    } else {
        error_log( 'Обновление плагина не требовалось' );
    }
}

// Запускаем обновление раз в сутки
if ( ! wp_next_scheduled( 'wprobot_daily_plugin_update' ) ) {
    wp_schedule_event( time(), 'daily', 'wprobot_daily_plugin_update' );
}
add_action( 'wprobot_daily_plugin_update', 'wprobot_force_update_plugin' );

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

Безопасность и резервное копирование перед обновлениями

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

Для автоматизации бэкапов можно использовать популярные плагины с поддержкой WP-CLI или собственные скрипты. Например, My Popup позволяет уведомлять администратора о статусе обновлений, что повышает контроль.

Заключение. Рекомендации по внедрению автоматических обновлений

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

Как создать автоматический бэкап в WordPress без плагинов
04.12.2025
Как автоматически отключить и включить плагин в WordPress с помощью кода
27.03.2026
WooCommerce: автоматическое изменение стоимости и наличия товаров через Webhook с подробным примером
13.06.2026
Как автоматически создать XML Sitemap в WordPress с помощью кода
30.03.2026
Как автоматически обновлять контент в WordPress с помощью AJAX и WP-Cron
02.01.2026