Почему важно отключать неиспользуемые плагины
Многие администраторы WordPress склонны устанавливать множество плагинов для тестирования или временного использования, но забывают их отключать или удалять после. В результате неиспользуемые плагины продолжают загружаться на сервере, даже если они деактивированы, что может негативно сказаться на производительности, безопасности и совместимости сайта.
Неиспользуемые плагины увеличивают нагрузку на базу данных и файловую систему, а также становятся уязвимыми точками для взлома, если не обновляются вовремя. Особенно актуально это для больших сайтов с большим количеством плагинов.
Автоматизация процесса отключения или уведомления о неактивных плагинах поможет держать сайт чистым и быстрым.
Как определить неиспользуемые плагины
Существует несколько критериев, по которым можно понять, что плагин не используется:
- Плагин деактивирован, но не удалён.
- Плагин активен, но не содержит активных настроек или не обрабатывает запросы.
- Отсутствуют вызовы функций плагина в коде темы или других плагинах.
Для автоматизации проверки можно использовать PHP-функции, которые анализируют список активных плагинов и их состояние, а также логи активности.
Пример кода для автоматического отключения плагинов, неактивных более 30 дней
Рассмотрим пример простой реализации, которая отключает плагины, если они не были активны или обновлялись дольше 30 дней. Для этого создадим кастомную функцию с префиксом wpexpert:
function wpexpert_deactivate_inactive_plugins() {
if ( ! current_user_can('activate_plugins') ) {
return;
}
$plugins = get_plugins();
$inactive_plugins = get_option('active_plugins', array());
$threshold = 30 * DAY_IN_SECONDS; // 30 дней
$now = time();
foreach ( $plugins as $plugin_file => $plugin_data ) {
if ( in_array( $plugin_file, $inactive_plugins ) ) {
// Плагин активен, пропускаем
continue;
}
$plugin_path = WP_PLUGIN_DIR . '/' . $plugin_file;
$last_modified = filemtime( $plugin_path );
if ( ( $now - $last_modified ) > $threshold ) {
deactivate_plugins( $plugin_file );
error_log("[wpexpert] Отключен неиспользуемый плагин: {$plugin_file}");
}
}
}
add_action( 'admin_init', 'wpexpert_deactivate_inactive_plugins' );Этот код проверяет все плагины, и если плагин неактивен и его файлы не менялись более 30 дней, то он автоматически деактивируется (если был активен), а в лог записывается сообщение. Такой подход можно доработать под ваши задачи.
Использование плагинов для управления неиспользуемыми плагинами
Если не хочется писать код, можно использовать готовые решения. Например, плагин Plugin Checker позволяет сканировать плагины на активность и наличие вызовов.
Для автоматизации уведомлений о неактивных плагинах можно использовать плагин Clearfy Pro, который содержит множество инструментов оптимизации, включая управление плагинами и их автодеактивацию.
Дополнительные советы по управлению плагинами
Регулярно проверяйте активность плагинов
Не реже раза в месяц просматривайте список установленных плагинов и отключайте те, которые не используются. Это поможет избежать накопления устаревшего кода.
Используйте профилировщики производительности
Инструменты типа Query Monitor показывают, какие плагины нагружают сайт, и можно принять решение об их отключении или замене.
Оптимизируйте порядок загрузки плагинов
Некоторые плагины загружаются раньше и могут замедлять весь процесс. Можно управлять порядком загрузки через фильтры и хуки, чтобы улучшить быстродействие.
Как настроить автоматическое уведомление об устаревших плагинах через код
Чтобы не отключать плагины сразу, можно настроить уведомления в админке о неактивных плагинах более 30 дней. Вот пример функции с префиксом wpexpert:
function wpexpert_notify_inactive_plugins() {
if ( ! current_user_can('manage_options') ) {
return;
}
$plugins = get_plugins();
$active_plugins = get_option('active_plugins', array());
$inactive_plugins = array_diff(array_keys($plugins), $active_plugins);
$threshold = 30 * DAY_IN_SECONDS;
$now = time();
$inactive_long = array();
foreach ( $inactive_plugins as $plugin_file ) {
$plugin_path = WP_PLUGIN_DIR . '/' . $plugin_file;
$last_modified = filemtime( $plugin_path );
if ( ( $now - $last_modified ) > $threshold ) {
$inactive_long[] = $plugins[$plugin_file]['Name'];
}
}
if ( ! empty($inactive_long) ) {
$message = 'Внимание: следующие плагины неактивны более 30 дней и могут быть удалены для безопасности и производительности: ' . implode(', ', $inactive_long);
echo '<div class="notice notice-warning is-dismissible"><p>' . esc_html($message) . '</p></div>';
}
}
add_action('admin_notices', 'wpexpert_notify_inactive_plugins');Так вы будете получать предупреждения в админ-панели без риска случайного отключения.
Итог
Автоматическое отключение неиспользуемых плагинов — важная задача для поддержания безопасности и скорости сайта на WordPress. Используйте проверенный код или готовые решения, такие как Clearfy Pro, чтобы держать плагины под контролем без лишних усилий.
Регулярный аудит и автоматизация — ключ к стабильной работе и защите вашего проекта.