wp-lessons.ru wordpress WP-Lessons

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

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

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

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

  • Сократить время на обслуживание сайта.
  • Обеспечить безопасность за счет своевременного патчинга.
  • Минимизировать человеческий фактор ошибок.

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

Как работает система обновлений в WordPress

WordPress использует встроенный механизм обновлений, который регулярно проверяет наличие новых версий ядра, тем и плагинов. По умолчанию автоматические обновления плагинов отключены (кроме некоторых случаев мелких обновлений безопасности). Управление доступно через фильтры и хуки.

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

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

Включение автообновлений для всех плагинов

Самый простой способ — использовать фильтр auto_update_plugin, который позволяет автоматически обновлять все плагины:

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

Этот код добавьте в functions.php вашей активной темы или в собственный плагин. После этого WordPress будет автоматически обновлять все плагины при выходе новых версий.

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

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

add_filter('auto_update_plugin', 'wp_lessons_auto_update_selected_plugins', 10, 2);
function wp_lessons_auto_update_selected_plugins( $update, $item ) {
    // Список плагинов для автообновления
    $plugins_to_update = [
        'contact-form-7/wp-contact-form-7.php',
        'woocommerce/woocommerce.php',
    ];
    if ( in_array( $item->plugin, $plugins_to_update ) ) {
        return true;
    }
    return false;
}

Здесь $item->plugin — это путь к основному файлу плагина относительно директории wp-content/plugins. Таким образом вы гибко контролируете, какие плагины обновлять автоматически.

Контроль и уведомления об обновлениях

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

Пример отправки уведомления после обновления плагина:

add_filter('auto_update_plugin', 'wp_lessons_auto_update_with_notification', 10, 2);
function wp_lessons_auto_update_with_notification( $update, $item ) {
    if ( $item->slug === 'contact-form-7' ) {
        add_action('upgrader_process_complete', function($upgrader, $options) use ($item) {
            if ( $options['action'] === 'update' && $options['type'] === 'plugin' ) {
                $to = get_option('admin_email');
                $subject = 'Плагин Contact Form 7 обновлен';
                $message = 'Плагин Contact Form 7 был автоматически обновлен на вашем сайте.';
                wp_mail($to, $subject, $message);
            }
        }, 10, 2);
        return true;
    }
    return false;
}

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

Особенности и рекомендации по безопасности

Несмотря на удобство, автоматические обновления могут привести к проблемам, если плагин несовместим с вашей версией WordPress или другими компонентами. Чтобы минимизировать риски, рекомендуем:

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

Заключение

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

×
WordPress
прокачай свой сайт!

Скидка на премиум темы и плагины

Успей забрать скидку ⋙