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

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

Зачем нужно автоматическое отключение плагинов в WordPress

Плагины — мощный инструмент для расширения функционала сайта, однако некоторые из них могут создавать нагрузку на сервер или конфликтовать с другими решениями. Если вы знаете, что в определённое время плагин не нужен, можно настроить его отключение по расписанию. Это поможет:

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

Рассмотрим, как реализовать такую логику программно и с помощью популярных плагинов.

Использование WP-Cron для отключения плагина по расписанию

WP-Cron — встроенный планировщик событий в WordPress. С его помощью можно запускать функции по расписанию без необходимости использовать системные cron-задачи сервера.

Для автоматического отключения и включения плагина необходимо создать две функции: одна будет деактивировать плагин, другая — активировать. Далее зарегистрируем задачи в WP-Cron.

Пример кода для отключения и включения плагина

function wpbook_deactivate_plugin_scheduled() {
    if ( is_plugin_active( 'akismet/akismet.php' ) ) { // замените на путь вашего плагина
        deactivate_plugins( 'akismet/akismet.php' );
    }
}

function wpbook_activate_plugin_scheduled() {
    if ( !is_plugin_active( 'akismet/akismet.php' ) ) { // замените на путь вашего плагина
        activate_plugin( 'akismet/akismet.php' );
    }
}

// Регистрация событий при инициализации
define( 'WPBOOK_PLUGIN_SLUG', 'akismet/akismet.php' );
add_action( 'wp', 'wpbook_schedule_plugin_toggle' );

function wpbook_schedule_plugin_toggle() {
    if ( !wp_next_scheduled( 'wpbook_deactivate_plugin_event' ) ) {
        // Отключаем плагин каждый день в 2:00
        wp_schedule_event( strtotime( '02:00:00' ), 'daily', 'wpbook_deactivate_plugin_event' );
    }
    if ( !wp_next_scheduled( 'wpbook_activate_plugin_event' ) ) {
        // Включаем плагин каждый день в 5:00
        wp_schedule_event( strtotime( '05:00:00' ), 'daily', 'wpbook_activate_plugin_event' );
    }
}

add_action( 'wpbook_deactivate_plugin_event', 'wpbook_deactivate_plugin_scheduled' );
add_action( 'wpbook_activate_plugin_event', 'wpbook_activate_plugin_scheduled' );

В этом примере плагин Akismet будет автоматически отключаться в 2:00 и включаться в 5:00. Путь к плагину указывается относительно папки wp-content/plugins, например, akismet/akismet.php. Подставьте свой плагин.

Как узнать путь плагина для функций deactivate_plugins и activate_plugin

Чтобы узнать путь плагина, зайдите в папку wp-content/plugins вашего сайта. Путь — это имя папки плагина и файл плагина через слэш. Например:

  • Плагин Contact Form 7: contact-form-7/wp-contact-form-7.php
  • Плагин WooCommerce: woocommerce/woocommerce.php

Этот путь нужно использовать в функциях deactivate_plugins и activate_plugin.

Использование плагинов для управления активацией по расписанию

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

  • Plugin Organizer — позволяет управлять активацией плагинов на отдельных страницах, но не по времени.
  • WP Crontrol — даёт полный контроль над WP-Cron задачами, можно создавать и редактировать события для активации/деактивации.

С помощью WP Crontrol можно вручную создать задачи, аналогичные тем, что описаны в коде выше.

Как проверить, что задачи WP-Cron работают корректно

WP-Cron запускается при загрузке сайта, поэтому если на сайте мало посещений, задачи могут не сработать вовремя. Для проверки и отладки советуем:

  • Использовать плагин WP Crontrol — он покажет запланированные задачи и их статус.
  • Временно увеличить частоту посещений сайта или использовать системный cron для запуска WP-Cron.
  • Включить логирование для функций активации/деактивации, например, записывать в файл или базу, чтобы убедиться, что они срабатывают.

Пример расширения: отключение нескольких плагинов по расписанию

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

function wpbook_deactivate_plugins_scheduled() {
    $plugins = [
        'akismet/akismet.php',
        'hello-dolly/hello.php'
    ];
    foreach ( $plugins as $plugin ) {
        if ( is_plugin_active( $plugin ) ) {
            deactivate_plugins( $plugin );
        }
    }
}

function wpbook_activate_plugins_scheduled() {
    $plugins = [
        'akismet/akismet.php',
        'hello-dolly/hello.php'
    ];
    foreach ( $plugins as $plugin ) {
        if ( !is_plugin_active( $plugin ) ) {
            activate_plugin( $plugin );
        }
    }
}

add_action( 'wpbook_deactivate_plugin_event', 'wpbook_deactivate_plugins_scheduled' );
add_action( 'wpbook_activate_plugin_event', 'wpbook_activate_plugins_scheduled' );

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

Советы по безопасности и стабильности

Автоматическое отключение плагинов — мощный инструмент, но требует аккуратности:

  • Убедитесь, что отключаемые плагины не критичны для работы сайта в это время.
  • Проверяйте логи ошибок, чтобы не пропустить проблемы с активацией/деактивацией.
  • Тестируйте расписание на тестовом сайте перед применением на продакшене.

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

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

⭐⭐⭐⭐⭐
Как создать пользовательские типы записей (CPT) в WordPress с примером кода
22.03.2026
Как создать автоматический импорт данных из внешнего API в WordPress
11.02.2026
Как отключить автопроигрывание видео в WordPress: практические методы
29.01.2026
Как создать автоматический импорт данных из Google Sheets в WordPress
19.03.2026
Как автоматизировать обновление плагинов в WordPress без плагинов
03.01.2026
×

AI-плагин

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

SEO и мета-теги

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

Изображения

Комментарии

Подробнее