[wp-hackers] Checking plugin version

David Anderson david at wordshell.net
Sat Sep 22 05:37:40 UTC 2012


> From: Martin Lazarov<martin at lazarov.bg>
> Subject: [wp-hackers] Checking plugin version
>
>
> Hi,
> is there a way to check plugin version? Fox example API or something
> else i can use from external system (not from wordpress).
Are you talking about...

a) Finding out about current WP directory plugin versions, by querying 
http://api.wordpress.org ?

b) Analysing an plugin file to see what version it is?


If b), then here's the regex I use in WordShell (it's a PCRE one, so 
will work from PHP or anything else that uses PCRE):
head -45 $PLUG | grep -Pi "^([ \t\*])*Version:\s?" | head -1 | cut -d: 
-f2- | sed 's/[^-0-9a-z\.]//gi


That's been developed through experience with testing on a few hundred 
plugins so should be fairly reliable. I've not compared it with what 
WordPress does internally (since it's worked reliably I've not needed to).

If a), then unfortunately the API is not well-documented, or easy to use 
from outside PHP since it uses PHP's serialisation format. There's not 
much you can do that I can see, except from reverse-engineering it by 
reading the WordPress source code and/or using tcpdump to do packet 
capture on a WordPress site.

I've been through that a bit, and WordShell has code to parse the API 
and display the description, changelog or download URL, e.g.:

# wordshell akismet --downloadurl
http://downloads.wordpress.org/plugin/akismet.2.5.6.zip

It would be extremely easy for me to add in a switch to dump out the 
latest version, e.g.

# wordshell akismet --latestversion
2.5.6

Drop me a line off-list if you're interested.

David

-- 
WordShell - WordPress fast from the CLI - www.wordshell.net



More information about the wp-hackers mailing list