Как автоматизировать удаление нерабочих плагинов WordPress

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

Почему важно удалять нерабочие плагины

Нерабочие плагины могут:

  • Вызывать ошибки и сбои в работе сайта;
  • Замедлять загрузку страниц и увеличивать нагрузку на сервер;
  • Создавать уязвимости для безопасности;
  • Приводить к конфликтам с другими плагинами или темами.

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

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

Существует несколько подходов для обнаружения неработающих или конфликтующих плагинов:

Ручное тестирование и отключение

Самый простой способ — поочерёдно отключать плагины и проверять функционирование сайта. Однако это долго и неудобно на большом количестве расширений.

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

Плагины вроде Plugin Check помогают выявлять конфликты и устаревшие плагины. Также полезен плагин My Popup для уведомления администраторов о состоянии плагинов.

Логирование ошибок и мониторинг

Включение WP_DEBUG и логов ошибок позволяет отследить плагины, вызывающие сбои. Также можно интегрировать систему мониторинга на основе error_log и уведомлений по email.

Автоматизация удаления нерабочих плагинов через код

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

function wporg_disable_faulty_plugin() {
  $faulty_plugin = 'bad-plugin/bad-plugin.php'; // Путь плагина относительно папки plugins

  // Проверяем, активен ли плагин
  if (is_plugin_active($faulty_plugin)) {
    // Пытаемся проверить работоспособность плагина (пример с использованием try-catch для PHP 7+)
    try {
      // Можно вызвать функцию плагина или другой тест
      if (function_exists('bad_plugin_test')) {
        bad_plugin_test();
      }
    } catch (Throwable $e) {
      deactivate_plugins($faulty_plugin);
      // Удаляем плагин
      wporg_delete_plugin($faulty_plugin);
      error_log('Плагин ' . $faulty_plugin . ' был отключен и удален из-за ошибки: ' . $e->getMessage());
    }
  }
}
add_action('admin_init', 'wporg_disable_faulty_plugin');

function wporg_delete_plugin($plugin) {
  if (!current_user_can('delete_plugins')) {
    return false;
  }
  include_once ABSPATH . 'wp-admin/includes/plugin.php';
  include_once ABSPATH . 'wp-admin/includes/file.php';
  include_once ABSPATH . 'wp-admin/includes/misc.php';
  include_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';

  $plugin_dir = WP_PLUGIN_DIR . '/' . dirname($plugin);
  global $wp_filesystem;
  if (false === ($creds = request_filesystem_credentials(site_url() . '/wp-admin/'))) {
    return false;
  }
  if (!WP_Filesystem($creds)) {
    return false;
  }
  return $wp_filesystem->delete($plugin_dir, true);
}

В этом примере при обнаружении ошибки плагин сначала деактивируется функцией deactivate_plugins, а затем удаляется с помощью WP_Filesystem API. Это безопаснее прямого удаления через PHP-функции, так как учитывает права и файловую систему.

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

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

  • Clearfy Pro — для оптимизации и отключения неиспользуемых функций, включая плагины;
  • WPCommunity — помогает отслеживать состояние плагинов и оповещать администраторов;
  • Expert Review — анализирует плагины на совместимость и устаревание.

Все эти решения можно найти на wpshop.ru и интегрировать в свой сайт для улучшения контроля.

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

Важно помнить, что автоматическое удаление плагинов следует делать осторожно. Обязательно:

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

Это поможет избежать потери данных и сбоев.

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

Автоматизация удаления нерабочих плагинов — задача, которая повышает стабильность и безопасность сайта WordPress. Используйте комплексный подход:

  1. Логируйте ошибки и анализируйте работу плагинов;
  2. Используйте плагины для диагностики;
  3. Реализуйте автоматическую деактивацию и удаление через собственные функции;
  4. Не забывайте о безопасности и резервных копиях.

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

Скачать WP с оф. сайта Магазин проверенных платных тем