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

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

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

Плагины – мощный инструмент для расширения функционала сайта, но с увеличением их числа растут риски:

  • Безопасность: неактуальные плагины могут содержать уязвимости, которые злоумышленники используют для взлома.
  • Производительность: даже неактивные плагины могут влиять на скорость загрузки, особенно если они оставляют следы в базе данных или файловой системе.
  • Управление: большое количество плагинов усложняет поддержку сайта и обновление.

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

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

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

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

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

Пример записи времени использования плагина

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

function wpcore_track_plugin_usage() {
    update_option('wpcore_plugin_last_used', current_time('timestamp'));
}
add_shortcode('wpcore_example', function() {
    wpcore_track_plugin_usage();
    return 'Пример вывода шорткода';
});

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

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

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

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

function wpcore_deactivate_unused_plugins() {
    $unused_threshold = 30 * DAY_IN_SECONDS; // 30 дней
    $last_used = get_option('wpcore_plugin_last_used', 0);

    if ((time() - $last_used) > $unused_threshold) {
        include_once ABSPATH . 'wp-admin/includes/plugin.php';
        deactivate_plugins('wpcore-plugin-folder/wpcore-plugin-file.php');
        error_log('Плагин WPCore автоматически отключен из-за неиспользования.');
    }
}
add_action('admin_init', 'wpcore_deactivate_unused_plugins');

Этот код проверяет дату последнего использования и отключает плагин, если прошло больше 30 дней. Важно корректно указать путь к файлу плагина.

Практические советы и рекомендации

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

  • Выполните резервное копирование сайта.
  • Убедитесь, что плагин не критичен для фукнционала сайта.
  • Добавьте уведомление для администратора о предстоящем отключении.
  • Рассмотрите возможность отправки письма с предупреждением.

Для реализации уведомлений можно использовать плагин Clearfy Pro, который позволяет управлять уведомлениями и оптимизацией WordPress.

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

function wpcore_notify_plugin_deactivation() {
    $last_used = get_option('wpcore_plugin_last_used', 0);
    $unused_threshold = 30 * DAY_IN_SECONDS;
    $days_unused = (time() - $last_used) / DAY_IN_SECONDS;

    if ($days_unused > 25 && current_user_can('manage_options')) {
        echo '<div class="notice notice-warning is-dismissible">'
            . 'Плагин WPCore не использовался более 25 дней. Он будет автоматически отключен через 5 дней.'
            . '</div>';
    }
}
add_action('admin_notices', 'wpcore_notify_plugin_deactivation');

Альтернативные решения и плагины для управления плагинами

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

  • Plugin Organizer — позволяет управлять активацией плагинов на разных страницах и условиях.
  • WP Activity Log — ведет журнал активности плагинов и пользователей.
  • Clearfy Pro — оптимизирует работу сайта, включая управление неиспользуемыми плагинами.

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

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

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

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

WooCommerce: как автоматически удалять неактивные вариации товаров без плагинов
06.06.2026
Как автоматически отключать неиспользуемые плагины в WordPress
14.01.2026
Как создать свой плагин WordPress с нуля: подробное руководство
30.11.2025
Как создать автоматическое отправление email при новом комментарии в WordPress
21.02.2026
Автоматический импорт данных из YML в WordPress: практическое руководство
27.01.2026