आप WordPress.org रेपो से सभी प्लगइन्स के सबसे हाल के संस्करण को डाउनलोड करने के लिए मार्क जैक्विथ द्वारा WordPres प्लगइन निर्देशिका स्लॉपर शेल स्क्रिप्ट का उपयोग कर सकते हैं । एक बार प्लगइन्स डाउनलोड हो जाने के बाद, आप उस प्लगइन / हुक उपसर्ग के लिए grep कर सकते हैं जिसे आप चेक करना चाहते हैं, जैसे:
grep -r --include=*.php 'wpseo_' ./
अपने दस्तावेज़ रूट में WordPres प्लगइन निर्देशिका स्लॉपर पैकेज को अनज़िप करें। डिफ़ॉल्ट निर्देशिका नाम है WordPress-Plugin-Directory-Slurperऔर इसमें निम्न शामिल हैं:
/plugins/
/readmes/
/zips/
LICENSE
README.markdown
update
निर्देशिका के php updateभीतर से निष्पादित करके बैश स्क्रिप्ट चलाएँ WordPress-Plugin-Directory-Slurper। ज़िप किए गए प्लग इन को डाउनलोड किया जाएगा /zipsऔर उन्हें निकाला जाएगा /plugins। पूरा रेपो 15GB के आसपास है और पहली बार डाउनलोड करने में कई घंटे लगेंगे।
updateस्क्रिप्ट की सामग्री :
#!/usr/bin/php
<?php
$args = $argv;
$cmd = array_shift( $args );
$type = 'all';
if ( !empty( $args[0] ) ) {
$type = $args[0];
}
switch ( $type ) {
case 'readme':
$directory = 'readmes';
$download = 'readmes/%s.readme';
$url = 'http://plugins.svn.wordpress.org/%s/trunk/readme.txt';
break;
case 'all':
$directory = 'plugins';
$download = 'zips/%s.zip';
$url = 'http://downloads.wordpress.org/plugin/%s.latest-stable.zip?nostats=1';
break;
default:
echo $cmd . ": invalid command\r\n";
echo 'Usage: php ' . $cmd . " [command]\r\n\r\n";
echo "Available commands:\r\n";
echo " all - Downloads full plugin zips\r\n";
echo " readme - Downloads plugin readmes only\r\n";
die();
}
echo "Determining most recent SVN revision...\r\n";
try {
$changelog = @file_get_contents( 'http://plugins.trac.wordpress.org/log/?format=changelog&stop_rev=HEAD' );
if ( !$changelog )
throw new Exception( 'Could not fetch the SVN changelog' );
preg_match( '#\[([0-9]+)\]#', $changelog, $matches );
if ( !$matches[1] )
throw new Exception( 'Could not determine most recent revision.' );
} catch ( Exception $e ) {
die( $e->getMessage() . "\r\n" );
}
$svn_last_revision = (int) $matches[1];
echo "Most recent SVN revision: " . $svn_last_revision . "\r\n";
if ( file_exists( $directory . '/.last-revision' ) ) {
$last_revision = (int) file_get_contents( $directory . '/.last-revision' );
echo "Last synced revision: " . $last_revision . "\r\n";
} else {
$last_revision = false;
echo "You have not yet performed a successful sync. Settle in. This will take a while.\r\n";
}
$start_time = time();
if ( $last_revision != $svn_last_revision ) {
if ( $last_revision ) {
$changelog_url = sprintf( 'http://plugins.trac.wordpress.org/log/?verbose=on&mode=follow_copy&format=changelog&rev=%d&limit=%d', $svn_last_revision, $svn_last_revision - $last_revision );
$changes = file_get_contents( $changelog_url );
preg_match_all( '#^' . "\t" . '*\* ([^/A-Z ]+)[ /].* \((added|modified|deleted|moved|copied)\)' . "\n" . '#m', $changes, $matches );
$plugins = array_unique( $matches[1] );
} else {
$plugins = file_get_contents( 'http://svn.wp-plugins.org/' );
preg_match_all( '#<li><a href="([^/]+)/">([^/]+)/</a></li>#', $plugins, $matches );
$plugins = $matches[1];
}
foreach ( $plugins as $plugin ) {
$plugin = urldecode( $plugin );
echo "Updating " . $plugin;
$output = null; $return = null;
exec( 'wget -q -np -O ' . escapeshellarg( sprintf($download, $plugin) ) . ' ' . escapeshellarg( sprintf($url, $plugin) ) . ' > /dev/null', $output, $return );
if ( $return === 0 && file_exists( sprintf($download, $plugin) ) ) {
if ($type === 'all') {
if ( file_exists( 'plugins/' . $plugin ) )
exec( 'rm -rf ' . escapeshellarg( 'plugins/' . $plugin ) );
exec( 'unzip -o -d plugins ' . escapeshellarg( 'zips/' . $plugin . '.zip' ) );
exec( 'rm -rf ' . escapeshellarg( 'zips/' . $plugin . '.zip' ) );
}
} else {
echo '... download failed.';
}
echo "\r\n";
}
if ( file_put_contents( $directory . '/.last-revision', $svn_last_revision ) )
echo "[CLEANUP] Updated $directory/.last-revision to " . $svn_last_revision . "\r\n";
else
echo "[ERROR] Could not update $directory/.last-revision to " . $svn_last_revision . "\r\n";
}
$end_time = time();
$minutes = ( $end_time - $start_time ) / 60;
$seconds = ( $end_time - $start_time ) % 60;
echo "[SUCCESS] Done updating plugins!\r\n";
echo "It took " . number_format($minutes) . " minute" . ( $minutes == 1 ? '' : 's' ) . " and " . $seconds . " second" . ( $seconds == 1 ? '' : 's' ) . " to update ". count($plugins) ." plugin" . ( count($plugins) == 1 ? '' : 's') . "\r\n";
echo "[DONE]\r\n";
यदि आप सबसे हाल ही में स्वीकृत थीम डाउनलोड करना चाहते हैं, तो उसके लिए भी एक स्क्रिप्ट है: वर्डप्रेस थीम डायरेक्टरी स्लॉपर आरोन जोर्बिन द्वारा।
ये शेल स्क्रिप्ट यूनिक्स प्रणाली के लिए डिज़ाइन की गई हैं। यदि आप Windows का उपयोग कर रहे हैं, तो आप cygwin का उपयोग करके Plugin / Theme Directory Slurper स्क्रिप्ट चला सकते हैं।