رأيت هذه الرسالة اليوم عند الوصول إلى صفحة البرنامج المساعد:
لذلك ، كيف يمكنني إنشاء هذا إذا كنت ترغب في تحديث الإضافات الخاصة بي التي يتم استضافتها على وورد؟
يتم إنشاء هذه الرسالة بواسطة W3_Total_Cache->in_plugin_update_message()
مدمن مخدرات إلى "in_plugin_update_message-$file"
in wp_plugin_update_row()
.
تعمل بعض العناصر التحليلية على تحليل المعلومات التمهيديّة والعرض من سجل التغيير ، ولكن عمومًا يمكنك فقط صدى بعض الأشياء كما هو الحال مع أي ربط آخر.
لتوضيح اسم ربط التصرف:
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()
.