wpcodes.ru wordpress WP Codеs

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

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

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

Плагины в WordPress — это мощный инструмент для расширения функционала, но каждый из них влияет на производительность и безопасность сайта. Неиспользуемые плагины:

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

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

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

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

Мониторинг активности плагинов

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

Использование плагинов для аудита

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

Ручной анализ

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

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

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

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

function wpcodes_auto_deactivate_unused_plugins() {
    if ( ! current_user_can('activate_plugins') ) {
        return;
    }

    $plugins = get_plugins();
    $active_plugins = get_option('active_plugins', []);
    $deactivate_after_days = 60; // количество дней неактивности
    $current_time = time();

    foreach ($active_plugins as $plugin_file) {
        $plugin_data = isset($plugins[$plugin_file]) ? $plugins[$plugin_file] : null;
        if (!$plugin_data) {
            continue;
        }

        $plugin_path = WP_PLUGIN_DIR . '/' . $plugin_file;
        $last_modified = filemtime($plugin_path);

        if (($current_time - $last_modified) / DAY_IN_SECONDS > $deactivate_after_days) {
            deactivate_plugins($plugin_file);
            error_log('wpcodes: Деактивирован плагин ' . $plugin_file . ' из-за неактивности более ' . $deactivate_after_days . ' дней.');
        }
    }
}
add_action('admin_init', 'wpcodes_auto_deactivate_unused_plugins');

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

Использование готовых плагинов для автоматизации

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

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

На WPSHOP.RU представлен широкий выбор полезных плагинов для управления и оптимизации WordPress.

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

Перед автоматическим отключением обязательно делайте резервные копии сайта и базы данных. Также полезно оповещать администратора сайта о произведённых изменениях, например, отправляя уведомления на email.

Вот пример отправки письма при отключении плагина в функции выше:

wp_mail(
    get_option('admin_email'),
    'Плагин деактивирован',
    'Плагин ' . $plugin_file . ' был автоматически деактивирован из-за отсутствия изменений более ' . $deactivate_after_days . ' дней.'
);

Также тестируйте работу сайта после отключения, чтобы избежать сбоев.

Выводы и лучшие практики

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

Не забывайте, что каждый сайт индивидуален, и перед внедрением автоматизации тестируйте решения в тестовой среде.

×

Создай идеальный сайт – теперь на 15% дешевле!

Подобрать тему →