প্লাগইন উপসর্গের স্বতন্ত্রতা কীভাবে পরীক্ষা করবেন?


11

অন্যান্য প্লাগইনগুলির সাথে সংঘর্ষ এড়াতে, সমস্ত বৈশ্বিক ফাংশন, ক্রিয়া এবং প্লাগইনগুলির একটি অনন্য উপসর্গ সহ উপস্থাপন করা উচিত, যেমন:

function xyz_function_name() { ... }

প্রশ্নটি হল, আমি কীভাবে যাচাই করব যে xyzএটি সত্যই অনন্য? উদাহরণস্বরূপ, ইয়োস্ট এসইও ব্যবহার করে wpseo_যা আমি অন্যান্য এসইও প্লাগইন সহজেই ব্যবহার করতে পারে তা কল্পনা করতে পারি। সম্ভাব্য সংঘর্ষের জন্য উপলভ্য ওয়ার্ডপ্রেস প্লাগইনগুলি সন্ধান করার সর্বোত্তম উপায় কী? নাকি আছে?


4
উপসর্গগুলি অতীতের একটি বিষয়। আজকাল আমরা নেমস্পেস ব্যবহার করি এবং আপনি আপনার প্রয়োজন মতো গভীর নীড়গুলি বাসাতে পারেন।
ফুসিয়া

আমি ক্রিয়া এবং ফিল্টারগুলি অন্তর্ভুক্ত করতে প্রশ্নটি আপডেট করব যা বিশ্বব্যাপী এবং ক্লাসগুলি ব্যবহার করে উপসর্গ করা যায় না।
বোরেক বার্নার্ড

যে আপডেটের, এই একটি খুব ভাল প্রশ্ন
prosti থেকে

1
আমি এটিকে ভোট দিয়েছি কারণ আমার মতে উত্তরটি কঠিন হতে চলেছে। তবে আমি সত্যিই মনে করি না যে এটি উপভোগযোগ্য কারণ উপসর্গ এবং ফাংশন নামের সংমিশ্রণে সংখ্যার সংমিশ্রণ রয়েছে। আমি মনে করি আসল সমাধানটি ফাংশনের নামে আরও বিশদ হওয়া উচিত। এছাড়াও, এবং সম্ভবত ওভারকিল, তবে একটি পোস্টফিক্স যোগ করা যেতে পারে।
stims

উত্তর:


5

আপনি ওয়ার্ডপ্রেস প্লাগইন ডিরেক্টরি স্ল্পার শেল স্ক্রিপ্ট ব্যবহার করতে পারেন মার্ক জ্যাকিথের দ্বারা 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";

আপনি যদি সর্বাধিক অনুমোদিত সমস্ত থিম ডাউনলোড করতে চান তবে এর জন্য একটি স্ক্রিপ্টও রয়েছে: অ্যারন জরবিনের ওয়ার্ডপ্রেস থিম ডিরেক্টরি স্লপার।

এই শেল স্ক্রিপ্টগুলি ইউনিক্স সিস্টেমের জন্য ডিজাইন করা হয়েছে। আপনি যদি উইন্ডোজ ব্যবহার করেন তবে আপনি সাইগউইন ব্যবহার করে প্লাগিন / থিম ডিরেক্টরি স্লুপার স্ক্রিপ্টগুলি চালাতে পারেন।


0
  1. জেনেরিক হবেন না, আপনার নামের কিছু প্রকরণ ব্যবহার করুন।
  2. নতুন প্লাগইন ইনস্টল করা কেউই পিএইচপি 5.2 ব্যবহার করে না (অক্টোবর 2016), কেবলমাত্র পিএইচপি নেমস্পেস ব্যবহার করুন এবং এটিকে প্লাগইন নামের মতো দীর্ঘ কিন্তু প্রাসঙ্গিক কিছু করুন।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.