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

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

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

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

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

Реализовать такую логику вручную неудобно, поэтому используем автоматизацию через планировщик задач WP-Cron.

Основы работы с WP-Cron для автоматизации плагинов

WP-Cron — встроенный механизм WordPress для запуска задач по расписанию. Чтобы использовать его для включения или отключения плагинов, нам понадобятся функции activate_plugin и deactivate_plugins.

Ключевые моменты:

  • WP-Cron запускается при посещении сайта, поэтому для точного расписания нужна хотя бы минимальная посещаемость.
  • Функции активации/деактивации плагинов требуют имени файла плагина (например, akismet/akismet.php).

Пример регистрации задания в WP-Cron

Добавим в файл functions.php или в собственный плагин следующий код:

function wpgenerate_schedule_plugin_disable() {
    if ( ! wp_next_scheduled( 'wpgenerate_deactivate_plugin_event' ) ) {
        wp_schedule_event( strtotime('23:00:00'), 'daily', 'wpgenerate_deactivate_plugin_event' );
    }
}
add_action( 'wp', 'wpgenerate_schedule_plugin_disable' );

Этот код запланирует событие деактивации плагина каждый день в 23:00.

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

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

add_action( 'wpgenerate_deactivate_plugin_event', 'wpgenerate_deactivate_plugin' );
function wpgenerate_deactivate_plugin() {
    deactivate_plugins( 'plugin-directory/plugin-file.php' );
}

// Аналогично можно добавить активацию в другое время
add_action( 'wpgenerate_activate_plugin_event', 'wpgenerate_activate_plugin' );
function wpgenerate_activate_plugin() {
    activate_plugin( 'plugin-directory/plugin-file.php' );
}

Замените plugin-directory/plugin-file.php на путь к нужному плагину. Например, для Contact Form 7 это будет contact-form-7/wp-contact-form-7.php.

Запланируем активацию

Добавим расписание активации, например, в 7:00 утра:

function wpgenerate_schedule_plugin_enable() {
    if ( ! wp_next_scheduled( 'wpgenerate_activate_plugin_event' ) ) {
        wp_schedule_event( strtotime('07:00:00'), 'daily', 'wpgenerate_activate_plugin_event' );
    }
}
add_action( 'wp', 'wpgenerate_schedule_plugin_enable' );

Как узнать точный путь плагина для функций активации и деактивации

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

  • plugin-directory/ — папка плагина
  • plugin-file.php — основной файл плагина

Например, для плагина Clearfy путь может быть clearfy/clearfy.php. Правильный путь критичен для успешной активации и деактивации.

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

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

function wpgenerate_deactivate_multiple_plugins() {
    $plugins = [
        'plugin1/plugin1.php',
        'plugin2/plugin2.php',
        'plugin3/plugin3.php',
    ];
    deactivate_plugins( $plugins );
    error_log( 'WPGenerate: Deactivated plugins at ' . current_time( 'mysql' ) );
}
add_action( 'wpgenerate_deactivate_plugin_event', 'wpgenerate_deactivate_multiple_plugins' );

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

Плагины для управления расписанием заданий и плагинами

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

  • WP Crontrol — позволяет управлять WP-Cron из админки.
  • Plugin Activator — позволяет переключать плагины в зависимости от условий.

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

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

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

  • Следите за совместимостью плагинов и тем, чтобы отключение не приводило к ошибкам.
  • Не отключайте плагины, отвечающие за безопасность и важный функционал.
  • Тестируйте на тестовом сайте перед применением на рабочем.

Выводы и рекомендации

Автоматизация управления плагинами позволяет гибко контролировать производительность и функционал сайта WordPress. Используйте WP-Cron, функции активации и деактивации, и при необходимости комбинируйте с плагинами управления задачами. Такой подход поможет оптимизировать ресурсы и избежать проблем с нагрузкой.

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

WooCommerce: автоматическое удаление неактивных вариаций товаров с помощью кода
20.05.2026
Как автоматически отображать последние посты в рассылках WordPress
18.01.2026
WooCommerce: автоматическое изменение статусов заказов по условиям
23.06.2026
Автоматическое отключение плагинов в WordPress по расписанию
16.04.2026
Как установить автоматический редирект в WordPress без плагинов
24.01.2026