প্লাগইন আপডেটে কীভাবে কাস্টম বার্তা তৈরি করা যায়


10

আমার প্লাগইন পৃষ্ঠা অ্যাক্সেস করার সময় আমি আজ এই বার্তাটি দেখেছি: কাস্টম প্লাগইন আপডেট বার্তা

সুতরাং, আমি যদি ওয়ার্ডপ্রেসে হোস্ট করা নিজস্ব প্লাগইনগুলি আপডেট করতে চাই তবে আমি কীভাবে এটি তৈরি করব?

উত্তর:


9

এই বার্তাটি W3_Total_Cache->in_plugin_update_message()হুক "in_plugin_update_message-$file"ইন ইন তৈরি করা হয়েছে wp_plugin_update_row()

এটি চেঞ্জলগ থেকে রেডমি এবং তথ্য প্রদর্শন করার জন্য কিছু নব্বইয়ের কাজ করে তবে সামগ্রিকভাবে আপনি অন্য কোনও হুকের মতো কিছু জিনিস প্রতিধ্বনি করতে পারেন।


আহ, এই হুক আমি যা খুঁজছি ধন্যবা
ariefbayu

10

হুক বিল্ডিং

অ্যাকশন হুক নামটি পরিষ্কার করার জন্য:

global $pagenow;
if ( 'plugins.php' === $pagenow )
{
    // Better update message
    $file   = basename( __FILE__ );
    $folder = basename( dirname( __FILE__ ) );
    $hook = "in_plugin_update_message-{$folder}/{$file}";
    add_action( $hook, 'your_update_message_cb', 20, 2 );
}

হুকযুক্ত কলব্যাক ফাংশন

ফাংশনটিতে নিজেই দুটি $variablesসংযুক্ত রয়েছে: $plugins_data& $r, যা আপনার প্লাগইনটি অ্যাক্সেস করতে পারে।

/**
 * Displays an update message for plugin list screens.
 * Shows only the version updates from the current until the newest version
 * 
 * @param (array) $plugin_data
 * @param (object) $r
 * @return (string) $output
 */
function your_update_message_cb( $plugin_data, $r )
{
    // readme contents
    $data       = file_get_contents( 'http://plugins.trac.wordpress.org/browser/YOUR_PLUGIN_FOLDER_NAME_IN_THE_OFFICIAL_REPO/trunk/readme.txt?format=txt' );

    // assuming you've got a Changelog section
    // @example == Changelog ==
    $changelog  = stristr( $data, '== Changelog ==' );

    // assuming you've got a Screenshots section
    // @example == Screenshots ==
    $changelog  = stristr( $changelog, '== Screenshots ==', true );

    // only return for the current & later versions
    $curr_ver   = get_plugin_data('Version');

    // assuming you use "= v" to prepend your version numbers
    // @example = v0.2.1 =
    $changelog  = stristr( $changelog, "= v{$curr_ver}" );

    // uncomment the next line to var_export $var contents for dev:
    # echo '<pre>'.var_export( $plugin_data, false ).'<br />'.var_export( $r, false ).'</pre>';

    // echo stuff....
    $output = 'whatever you want to do';
    return print $output;
}

পাদটীকা:

এই পদ্ধতির অভ্যন্তরীণ লিঙ্ক চেকার প্লাগইন পাওয়া যাবে ।

সংযোজন:

plugin_basename(__FILE__)উপরের দুটি লাইনের পরিবর্তে ব্যবহার করা যেতে পারে। এছাড়াও বর্তমান পৃষ্ঠাটি প্লাগইন পৃষ্ঠা কিনা তা যাচাই করা সত্যিই প্রয়োজনীয় নয় কারণ ফাংশনটি কেবল সেই পৃষ্ঠাটির মাধ্যমেই ডাকা হবে। (খুব সামান্য) সুবিধাটি হ'ল আপনার আর কোনও কলব্যাক সংযুক্ত নেই। যেহেতু এই উত্তরটি বেশ পুরানো, আপনি যখন এই পদ্ধতিটি এখনও কোনও সমস্যা ছাড়াই কাজ করেন, এখন যে জিনিসটি ফিরে এসেছে তার বিরুদ্ধে পরীক্ষা করুন get_current_screen()

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.