আপনি ওয়ার্ডপ্রেস প্লাগইন ডিরেক্টরি স্ল্পার শেল স্ক্রিপ্ট ব্যবহার করতে পারেন মার্ক জ্যাকিথের দ্বারা WordPress.org রেপো থেকে সমস্ত প্লাগইনের সর্বাধিক সংস্করণ ডাউনলোড করতে। প্লাগইনগুলি ডাউনলোড হয়ে গেলে আপনি যাচাই করতে চান প্লাগইন / হুক উপসর্গের জন্য গ্রেপ করতে পারেন, যেমন:
grep -r --include=*.php 'wpseo_' ./
আপনার ডকুমেন্টের রুটে ওয়ার্ডপ্রেস প্লাগইন ডিরেক্টরি স্লার্পার প্যাকেজটি আনজিপ করুন। ডিফল্ট ডিরেক্টরি নাম WordPress-Plugin-Directory-Slurper
এবং এতে রয়েছে:
/plugins/
/readmes/
/zips/
LICENSE
README.markdown
update
ডিরেক্টরি php update
থেকে চালিয়ে বাশ স্ক্রিপ্ট চালান WordPress-Plugin-Directory-Slurper
। জিপযুক্ত প্লাগইনগুলিতে ডাউনলোড করা হবে /zips
এবং এতে সরানো হবে /plugins
। পুরো রেপো কোথাও কোথাও 15 জিবি এবং প্রথমবার ডাউনলোড করতে বেশ কয়েক ঘন্টা সময় লাগবে।
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";
আপনি যদি সর্বাধিক অনুমোদিত সমস্ত থিম ডাউনলোড করতে চান তবে এর জন্য একটি স্ক্রিপ্টও রয়েছে: অ্যারন জরবিনের ওয়ার্ডপ্রেস থিম ডিরেক্টরি স্লপার।
এই শেল স্ক্রিপ্টগুলি ইউনিক্স সিস্টেমের জন্য ডিজাইন করা হয়েছে। আপনি যদি উইন্ডোজ ব্যবহার করেন তবে আপনি সাইগউইন ব্যবহার করে প্লাগিন / থিম ডিরেক্টরি স্লুপার স্ক্রিপ্টগুলি চালাতে পারেন।