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

|

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

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

Многие пользователи WordPress устанавливают множество плагинов для тестирования или временного решения задач. Со временем часть из них перестаёт быть нужной, но остаётся активной. Это ведёт к нескольким проблемам:

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

Как определить неиспользуемые плагины

Первый шаг — понять, какие плагины можно считать неиспользуемыми. Обычно это плагины, которые:

Определить такие плагины можно с помощью логирования активности или плагинов мониторинга.

Плагины для мониторинга активности

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

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

Автоматическое отключение неиспользуемых плагинов — пример кода

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

Ниже пример функции, которая отключает плагин, если он не был активен определённое время (например, 30 дней). Для этого нужно логировать дату последней активности плагина и проверять её регулярно.

function wpzoom_update_plugin_last_used($plugin) {
    $last_used = get_option('wpzoom_plugins_last_used', array());
    $last_used[$plugin] = current_time('timestamp');
    update_option('wpzoom_plugins_last_used', $last_used);
}

function wpzoom_check_and_deactivate_plugins() {
    $last_used = get_option('wpzoom_plugins_last_used', array());
    $active_plugins = get_option('active_plugins', array());
    $threshold = 30 * DAY_IN_SECONDS; // 30 дней

    foreach ($active_plugins as $plugin) {
        if (isset($last_used[$plugin])) {
            $inactive_time = current_time('timestamp') - $last_used[$plugin];
            if ($inactive_time > $threshold) {
                deactivate_plugins($plugin);
                error_log("[WPZoom] Деактивирован плагин {$plugin} из-за неиспользования.");
            }
        } else {
            // Если нет данных, считаем сейчас активным
            wpzoom_update_plugin_last_used($plugin);
        }
    }
}

// Пример вызова по крону
add_action('wp_scheduled_plugin_check', 'wpzoom_check_and_deactivate_plugins');

// Создание задачи при инициализации
if (!wp_next_scheduled('wp_scheduled_plugin_check')) {
    wp_schedule_event(time(), 'daily', 'wp_scheduled_plugin_check');
}

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

Как отслеживать активность плагина

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

Если у вас нет контроля над всеми плагинами, можно отслеживать их загрузку через хук plugin_loaded или фильтр plugins_loaded, однако это не всегда отражает реальную активность пользователя.

Использование готовых решений для управления плагинами

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

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

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

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

function wpzoom_check_and_deactivate_plugins() {
    $last_used = get_option('wpzoom_plugins_last_used', array());
    $active_plugins = get_option('active_plugins', array());
    $threshold = 30 * DAY_IN_SECONDS; // 30 дней
    $exclude_plugins = array('akismet/akismet.php', 'wordfence/wordfence.php'); // Исключения

    foreach ($active_plugins as $plugin) {
        if (in_array($plugin, $exclude_plugins)) {
            continue;
        }
        if (isset($last_used[$plugin])) {
            $inactive_time = current_time('timestamp') - $last_used[$plugin];
            if ($inactive_time > $threshold) {
                deactivate_plugins($plugin);
                error_log("[WPZoom] Деактивирован плагин {$plugin} из-за неиспользования.");
            }
        } else {
            wpzoom_update_plugin_last_used($plugin);
        }
    }
}

Выводы и практические советы

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

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

Для более глубокой оптимизации стоит комбинировать отключение плагинов с другими методами оптимизации, которые доступны в WPSHOP — например, автоматической очисткой базы данных и управлением кэшем.

Создать собственный виджет WordPress: подробное руководство с примерами кода
08.11.2025
Как избежать проблем с вариациями товаров WooCommerce при массовом импорте
20.04.2026
WooCommerce: решение проблемы с неактивными кнопками корзины после обновления
19.06.2026
Как создать и использовать атрибуты шорткода в WordPress с примерами кода
22.12.2025
Создать и использовать шорткод для вывода продуктов WPShop в WordPress
28.03.2026
×
до 3225₽

WPShop - честная партнерка!

Зарабатывай с каждой продажи

Подключиться ⋙