Управление плагинами в WordPress — задача, которая требует внимания и регулярного контроля. Особенно если на сайте установлено много расширений, бывает сложно отслеживать их состояние, совместимость и производительность. В этой статье мы подробно разберем, как автоматизировать обследование и оценку плагинов WordPress с помощью собственного кода и популярных инструментов, чтобы сделать управление безопасным и эффективным.
Почему важно автоматизировать проверку плагинов WordPress
Плагины — основа функциональности WordPress, но они же часто становятся источником проблем:
- Конфликты между плагинами приводят к ошибкам и сбоям сайта.
- Устаревшие или плохо поддерживаемые расширения создают угрозу безопасности.
- Некорректный код плагинов замедляет работу сайта и усложняет обслуживание.
Ручная проверка требует много времени и ошибок, поэтому автоматизация с помощью скриптов и плагинов помогает своевременно выявлять проблемы и принимать решения.
Автоматическое получение информации о плагинах через WP-CLI
WP-CLI — мощный инструмент для администрирования WordPress из командной строки. С его помощью можно быстро получить полную информацию о плагинах, их статусе и обновлениях.
Пример команды для вывода списка установленных плагинов с их состоянием и версиями:
wp plugin list --format=jsonДля интеграции в свои скрипты можно вызвать эту команду из PHP и распарсить JSON-ответ. Это позволит автоматизировать мониторинг и создавать отчеты.
Пример функции для получения списка плагинов через WP-CLI в PHP
function wpplugins_get_plugins_status() {
$output = shell_exec('wp plugin list --format=json 2>&1');
$plugins = json_decode($output, true);
if (json_last_error() !== JSON_ERROR_NONE) {
return [];
}
return $plugins;
}Эта функция запускает команду, получает JSON с данными и возвращает массив с информацией о каждом плагине: название, версия, статус (активен/неактивен), есть ли обновления.
Использование REST API WordPress для мониторинга плагинов
REST API WordPress позволяет получать данные о плагинах и состоянии сайта. Для этого можно создать собственный endpoint, который возвращает нужную информацию по запросу.
Пример кода создания REST API endpoint для получения списка плагинов
add_action('rest_api_init', function () {
register_rest_route('wpplugins/v1', '/plugins', [
'methods' => 'GET',
'callback' => 'wpplugins_rest_get_plugins',
'permission_callback' => function () {
return current_user_can('manage_options');
}
]);
});
function wpplugins_rest_get_plugins() {
if (!function_exists('get_plugins')) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$all_plugins = get_plugins();
$active_plugins = get_option('active_plugins', []);
$result = [];
foreach ($all_plugins as $path => $details) {
$result[] = [
'name' => $details['Name'],
'version' => $details['Version'],
'active' => in_array($path, $active_plugins),
'plugin_path' => $path
];
}
return $result;
}Этот endpoint будет доступен по адресу /wp-json/wpplugins/v1/plugins и выдаст JSON с информацией о всех плагинах. Так вы сможете создавать внешние инструменты для мониторинга.
Автоматическая оценка безопасности и производительности плагинов
Для оценки плагинов по безопасности и нагрузке можно использовать сторонние сервисы и плагины, например:
- Query Monitor — показывает производительность плагинов и запросы к базе данных.
- WPScan — инструмент для сканирования уязвимостей.
- Clearfy Pro — плагин для оптимизации и безопасности, который помогает выявлять проблемные места.
Также можно добавить автоматический аудит с помощью PHP-кода, проверяя наличие функций, которые часто вызывают проблемы, например, использование устаревших хуков или небезопасных вызовов.
Пример простой проверки на использование устаревших функций в плагинах
function wpplugins_scan_deprecated_functions() {
$deprecated_functions = ['create_function', 'split', 'mysql_query'];
if (!function_exists('get_plugins')) {
require_once ABSPATH . 'wp-admin/includes/plugin.php';
}
$all_plugins = get_plugins();
$report = [];
foreach ($all_plugins as $path => $details) {
$plugin_dir = WP_PLUGIN_DIR . '/' . dirname($path);
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($plugin_dir));
foreach ($files as $file) {
if ($file->isFile() && $file->getExtension() === 'php') {
$content = file_get_contents($file->getRealPath());
foreach ($deprecated_functions as $func) {
if (strpos($content, $func) !== false) {
$report[$details['Name']][] = $func . ' found in ' . $file->getFilename();
}
}
}
}
}
return $report;
}Эта функция ищет упоминания устаревших функций в коде всех плагинов и возвращает отчет. Это поможет выявить потенциально проблемные места.
Интеграция автоматической проверки с WPShop плагинами
Если вы используете плагины из каталога WPShop, например, Clearfy Pro или WPRemark, их функционал можно расширить с помощью собственных скриптов мониторинга. Например, Clearfy Pro позволяет улучшить безопасность и оптимизацию, а ваша автоматизация поможет получать детальные отчеты и своевременно реагировать на изменения.
Советы по внедрению автоматизации в рабочий процесс
- Настройте регулярный запуск скриптов проверки через системный cron или WP Cron.
- Используйте REST API для получения отчетов в административной панели или сторонних приложениях.
- Интегрируйте уведомления на почту или мессенджеры при обнаружении критических проблем.
Так вы снизите риски и повысите качество поддержки своих сайтов на WordPress.
Заключение
Автоматизация обследования и оценки плагинов — важный шаг для любого разработчика и администратора WordPress-сайта. Используя WP-CLI, REST API и собственные скрипты, вы можете значительно упростить эту задачу и повысить безопасность и производительность проектов. Не забывайте также про проверенные плагины из каталога WPShop для комплексной оптимизации.