質問: プラグインのアップデート時にカスタムメッセージを作成する方法 私のプラグインページにアクセスしたとき、私は今日このメッセージを見ました: それで、私がワードプレスでホストされている私自身のプラグインを更新したい場合、どうやってこれを作成するのですか?
回答: フックビルアクションフック名を明確にするには: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 ); } フックされたコールバック関数関数自体には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にあります。 追加: 上記の2行の代わりにplugin_basename(__file__)を使用できます。また、現在のページがプラグインページであるかどうかを確認することは、実際には必要ではありません。機能はいずれにせよそのページによってのみ呼び出されるためです。 (ごくわずかな)利点は、別のコールバックが添付されていないことです。この答えはかなり古いので、このアプローチはまだ問題なく動作しますが、今度は get_current_screen() によって返されるオブジェクトと照合します。