Список всех существующих плагинов WordPress
Существует ли место, откуда можно получить список всех существующих плагинов WordPress, расположенных на http://wordpress.org/extend/plugins/
Я пытаюсь протестировать свой сайт на уязвимости и мне нужен такой список. Спасибо

http://plugins.svn.wordpress.org/
Удачи. Это очень длинный список, и Отто обычно очень злится, если кто-то пытается скрапить полный SVN-репозиторий.

SVN
Вы можете найти список всех плагинов в SVN - https://plugins.svn.wordpress.org/
Git
Другой вариант — зеркало на GitHub, где доступен более удобный API для работы со списком. - https://github.com/wp-plugins
API
Также вы можете использовать API и его функции для получения более удобного решения для парсинга изменений и т. д., см. https://developer.wordpress.org/reference/functions/plugins_api/
Дополнительно
Дополнительный сервис — https://wpdirectory.net/, который также предоставляет множество полезных функций. WP Dir — это веб-сервис, позволяющий выполнять сверхбыстрый поиск по регулярным выражениям в директориях плагинов и тем WordPress. Особенно полезны возможности работы с регулярными выражениями.

Не самый лучший ответ, но я постарался решить свою проблему наилучшим образом.
Получение списка плагинов
Этот метод вернет не все плагины, но вернет самые популярные из них:
$plugins = plugins_api('query_plugins', array(
'per_page' => 100, // Количество плагинов
'browse' => 'top-rated', // Только топовые плагины
'fields' => // Какие поля исключаем
array(
'short_description' => false, // Краткое описание
'description' => false, // Полное описание
'sections' => false, // Разделы
'tested' => false, // Протестировано с версией WP
'requires' => false, // Требуемая версия WP
'rating' => false, // Рейтинг
'ratings' => false, // Все оценки
'downloaded' => false, // Количество загрузок
'downloadlink' => false, // Ссылка на скачивание
'last_updated' => false, // Последнее обновление
'added' => false, // Дата добавления
'tags' => false, // Теги
'compatibility' => false, // Совместимость
'homepage' => false, // Домашняя страница
'versions' => false, // Версии
'donate_link' => false, // Ссылка на пожертвование
'reviews' => false, // Отзывы
'banners' => false, // Баннеры
'icons' => false, // Иконки
'active_installs' => false, // Активные установки
'group' => false, // Группа
'contributors' => false // Участники
)));
Сохранение данных в JSON
Поскольку получаемые данные очень объемные и могут негативно сказаться на производительности, мы извлекаем только название
и slug
из массива и записываем их в JSON-файл:
$plugins_json = '{' . PHP_EOL;
// Получаем только название и slug
foreach ($plugins as $plugin) {
foreach ($plugin as $key => $p) {
if ($p->name != null) {
// Форматируем JSON для удобочитаемости
$plugins_json .= ' "'. $p->name . '": {' . PHP_EOL;
$plugins_json .= ' "slug": "' . $p->slug . '"' . PHP_EOL;
end($plugin);
$plugins_json .= ($key !== key($plugin)) ? ' },' . PHP_EOL : ' }' . PHP_EOL;
}
}
}
$plugins_json .= '}';
file_put_contents('plugins.json', $plugins_json); // Записываем в файл
Теперь у нас есть компактный JSON-файл только с нужными данными.
Для регулярного обновления JSON-файла мы запускаем этот скрипт для создания JSON-файла каждые 24 часа с помощью настройки Cron Job.
