Список всех существующих плагинов WordPress

15 апр. 2013 г., 04:35:08
Просмотры: 9.26K
Голосов: 6

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

Я пытаюсь протестировать свой сайт на уязвимости и мне нужен такой список. Спасибо

2
Комментарии

Для тех (как я), кто ищет просто число, список содержит 68616 элементов.

Simon vom Eyser Simon vom Eyser
11 июл. 2017 г. 13:19:02

Привет, Саймон — большое спасибо за помощь. Как ты нашел это число!? Жду ответа.

zero zero
27 июн. 2020 г. 10:46:00
Все ответы на вопрос 3
2
11

http://plugins.svn.wordpress.org/

Удачи. Это очень длинный список, и Отто обычно очень злится, если кто-то пытается скрапить полный SVN-репозиторий.

15 апр. 2013 г. 04:49:24
Комментарии

Что? Как там Отто?

Cyclonecode Cyclonecode
13 апр. 2018 г. 23:44:58

Хм - а кто такой Отто?

zero zero
27 июн. 2020 г. 10:46:37
1

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. Особенно полезны возможности работы с регулярными выражениями.

15 янв. 2020 г. 10:21:01
Комментарии

спасибо за подсказки. Особенная благодарность за ссылку на wp-directory.

zero zero
27 июн. 2020 г. 10:48:13
0

Не самый лучший ответ, но я постарался решить свою проблему наилучшим образом.

Получение списка плагинов

Этот метод вернет не все плагины, но вернет самые популярные из них:

$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.

16 июн. 2020 г. 00:34:27