• Stars
    star
    163
  • Rank 230,483 (Top 5 %)
  • Language
    PHP
  • License
    GNU General Publi...
  • Created over 13 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Slurps down every stable version of every plugin in the WordPress plugin directory.

WordPress Plugin Directory Slurper

A command line PHP script that downloads and updates a copy of the latest stable version of every plugin in the WordPress.org plugin repository.

Really handy for doing local searches across all WordPress plugins.

Requirements

  • Unix system (tested on Mac OS X and Linux)
  • PHP 5.2 or higher
  • wget and svn command-line executables installed

A Windows/Unix compatible version of this project that has comparable performance (if you can use cURL and PHP's pThreads) is available here.

Instructions

  1. cd WordPress-Plugin-Directory-Slurper
  2. ./update

The plugins/ directory will contain all the plugins when the script is done.

Run ./update help for more options.

Scanning the repo

You can use ack or ag to scan the plugins repository. See also the plugins directory maintenance documentation page.

This repository also includes a script to show a summary of a scan. For example:

$ ag --php --skip-vcs-ignores rest_get_date_with_gmt | tee scans/rest_get_date_with_gmt.txt
$ ./summarize-scan.php scans/rest_get_date_with_gmt.txt
5 matching plugins
Matches  Plugin                             Active installs
=======  ======                             ===============
      4  rest-api                                   40,000+
      4  wptoandroid                                    30+
      5  custom-contact-forms                       60,000+
      2  appmaker-wp-mobile-app-manager                 50+
      4  appmaker-woocommerce-mobile-app-manager       200+

FAQ

Why download the zip files? Why not use SVN?

An SVN checkout of the entire repository is a BEAST of a thing. You don't want it, trust me. Updates and cleanups can take hours or even days to complete.

Why not just do an SVN export of each plugin's trunk?

There is no guarantee that the plugin's trunk is the latest stable version. The repository supports doing development in trunk, and designating a branch or tag as the stable version. Using the zip file gets around this, as it figures it all out and gives you the latest stable version.

How long will it take?

Your first update will take a while (at least a couple of hours, and potentially overnight, depending on your connection and disk speeds).

But subsequent updates are smarter. The script tracks the SVN revision number of your latest update and then asks the plugins SVN repository for a list of plugins that have changed since. Only those changed plugins are updated after the initial sync.

How much disk space do I need?

As of December 2017, the plugin repository contains over 70,000 plugins. The script will download around 20 GB of zip files which, when unpacked, will use around 45 GB of disk space.

Something went wrong, how do I do a partial update?

The last successful update revision number is stored in plugins/.last-revision. You can just overwrite that and the next update will start after that revision.

What is this thing actually doing to my computer?

Once downloads have started, you can use a command like this to monitor the tasks being executed by this tool:

watch -n .5 "pstree -pa `pgrep -f '^xargs -n 1 -P .+ ./download'`"

Copyright & License

Copyright (C) 2011 Mark Jaquith

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

More Repositories

1

WordPress-Skeleton

Basic layout of a WordPress Git repository. I use this as a base when creating a new repo.
PHP
1,836
star
2

WP-Stack

A toolkit for creating professional WordPress deployments
PHP
1,113
star
3

WP-TLC-Transients

PHP
338
star
4

WordPress

This is legacy. Use github.com/WordPress/WordPress/ instead!
PHP
229
star
5

clerk-sveltekit

Clerk adapter for SvelteKit
Svelte
137
star
6

encute

WordPress plugin for fluent management of scripts and styles.
PHP
107
star
7

page-links-to

#WordPressPlugin: Lets you make a WordPress page (or other content type) link to an external URL of your choosing, instead of its WordPress URL.
PHP
106
star
8

wp-help

#WordPressPlugin: Site operators can create detailed, hierarchical documentation for the site's authors, editors, and contributors, viewable in the WordPress admin
PHP
104
star
9

cache-buddy

#WordPressPlugin: makes more WordPress pages cacheable
PHP
78
star
10

BetterBible

The Bible has some issues. Let's make it better.
72
star
11

Showdown

Example WordPress plugin created for WordCamp San Francisco 2014, to show off wp.Backbone.View
PHP
52
star
12

WordPress-Plugin-Readme-Parser

PHP
42
star
13

gifdrop

#WordPressPlugin GIF repository plugin for WordPress
PHP
36
star
14

Localdev

Simple Ruby command line utility to point domains to your localhost
Ruby
34
star
15

markdown-on-save

#WordPressPlugin: allows you to author posts in Markdown, but stores rendered HTML in post_content so you can deactivate with impunity.
PHP
29
star
16

slug-control

#WordPressPlugin: Helps you craft amazing post URL slugs, for that hand-crafted URL feel.
PHP
27
star
17

i-make-plugins

#WordPressPlugin: For plugin authors. Showcase your plugins on your WordPress site. You only update your readme.txt files!
PHP
19
star
18

WordPress-Jetpack-Valet-Driver

A Laravel Valet driver that routes missing images to your public site, via Jetpack's Site Accelerator (formerly "Photon") CDN.
PHP
18
star
19

wpsql

DEPRECATED. Use WP-CLI instead! Old: Bash script that, given a wp-config.php file, opens a MySQL session to the DB server described within
17
star
20

scheduled-post-guardian

#WordPressPlugin: Watches over scheduled posts, so that no funny business interferes with their mission
PHP
16
star
21

WordPress-Plugin-Installer

PHP
16
star
22

nice-search

#WordPressPlugin: Makes search URLs pretty
PHP
15
star
23

login-logo

#WordPressPlugin: Customize the logo on the WP login screen by simply dropping a file named login-logo.png into your WP content directory. CSS is automatic!
PHP
15
star
24

wp-feature-better-passwords

PHP
11
star
25

WPPlugin

Command line tool for updating and managing WordPress plugins
Ruby
11
star
26

gist-indexer

#INACTIVE: Use swdyh/gisty instead!
PHP
10
star
27

workerbee

A friendly tool for composing Cloudflare Workers
TypeScript
9
star
28

cmdy

Your friendly command manager
Shell
7
star
29

BlockStub

PHP
6
star
30

BashGato

Control Elgato lights with a Bash script
Shell
6
star
31

categorized

#WordPressPlugin: Unchecks the default post category when you select a non-default category
PHP
5
star
32

stabletweet

JavaScript
5
star
33

hotfix

Provides unofficial fixes for selected WordPress bugs, so you don't have to wait for the next WordPress core release.
PHP
5
star
34

Alfred-Silent-Mention

Alfred 4 Workflow to silently type @usernames, domains.com, or #hashtags without them being linked or parsed
3
star
35

sveltekit-playwright-fetch-mock

Tools for mocking SSR fetch() requests in SvelteKit for use in Playwright
TypeScript
2
star
36

WordPress-Skeleton-Updater

PHP
2
star
37

switch-controller

PHP
2
star
38

p3-neutraliser

WordPress plugin which prevent's Pipdig's P3 plugin from updating or requesting malicious URLs
PHP
2
star
39

grunt-wp-simple-plugin

Simple WordPress Plugin Template
CoffeeScript
2
star
40

dieulot.github.io

instantclick.io
JavaScript
1
star
41

grunt-puphpet-site

Initialize a PuPHPet site with grunt-init
Ruby
1
star
42

Wherewithal

Given constraints, parses a string of conditions into a valid MySQL WHERE clause
PHP
1
star
43

BigBrain

A familiar game to help you, uh, master your... mind.
Svelte
1
star
44

prefsync

Syncs macOS preferences
Shell
1
star