6

Is there a place from where I can get a list of all existing WordPress plugins, located in http://wordpress.org/extend/plugins/

I am trying to test my website for vulnerabilities and need such list. Thanks

2
  • 1
    For anyone (like me) just searching the plain number, the list contains 68616 items. Jul 11, 2017 at 10:19
  • hi Simon - many thanks for your help. How did you find this number!? Look forward to hear from you
    – zero
    Jun 27, 2020 at 7:46

3 Answers 3

11

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

Good luck. It's a very long list and Otto normally becomes very angry if someone try to scrape the complete SVN-Repo.

2
  • 1
    What? How is Otto? Apr 13, 2018 at 20:44
  • Hmm - who is Otto?
    – zero
    Jun 27, 2020 at 7:46
1

SVN

You find a list of all plugins inside the SVN - https://plugins.svn.wordpress.org/

Git

Another option is the mirror on GitHub, there have a more useful API to doing thinks with the list. - https://github.com/wp-plugins

API

Also, you can use the API and his functions to get a more usable solution to parse for changes, etc., see https://developer.wordpress.org/reference/functions/plugins_api/

Additional

An additional service is https://wpdirectory.net/ which gives you also lot of helpful functions. WP Dir is a web service there allowing lightning fast regex searches of the WordPress Plugin/Theme Directories. Especially the regex is really helpful.

1
  • thank you for the hints. Thanks especially for the link to the wp-directory.
    – zero
    Jun 27, 2020 at 7:48
0

Not the best answer but I tried to solve my own problem the best way I could.

Getting a list of plugins

This will not return ALL plugins but it will return the top rated ones:

$plugins = plugins_api('query_plugins', array(
    'per_page' => 100,
    'browse' => 'top-rated',
    'fields' =>
        array(
            'short_description' => false,
            'description' => false,
            'sections' => false,
            'tested' => false,
            'requires' => false,
            '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
        )));

Save the data as JSON

Since the data that we get is huge and it will be bad for performance, we try to get the name and the slug out of the array and then we write it in a JSON file:

$plugins_json = '{' . PHP_EOL;
// Get only the name and the slug
foreach ($plugins as $plugin) {
    foreach ($plugin as $key => $p) {
        if ($p->name != null) {
            // Let's beautify the 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);

Now we have a slim JSON file with only the data that we need.

To keep updating the JSON file, we run that script to create a JSON file every 24 hours by setting up a Cron Job.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.