私は私のプラグインのための新しいアップデートをプッシュしようとしています。 WordPress 3.8でしか利用できない機能をいくつか使用しましたが、最新バージョンをサポートしたいので問題ありません。
プラグインを更新する前にユーザーにメッセージを表示してWhat's Newのリスト、またはWordPress 3.8が最新バージョンを実行するために必要であるという一般的な警告を表示するにはどうすればよいですか。プラグイン?
メッセージを表示する場所のスクリーンショットを添付しました。これはあなたがトランク内のreadme.txt
の変更ログに入れたものに基づいて表示されるものですか?
in_plugin_update_message-{$file}
にフックできます。
上記のプラグインの場合、対応するコードは次のようになります。
add_action('admin_menu', array($this,'admin_menu'), 11);
function admin_menu()
{
global $pagenow;
if( $pagenow == 'plugins.php' )
{
$hook = apply_filters('acf/get_info', 'hook');
add_action( 'in_plugin_update_message-' . $hook, array($this, 'in_plugin_update_message'), 10, 2 );
}
}
function in_plugin_update_message( $plugin_data, $r )
{
$version = apply_filters('acf/get_info', 'version');
$readme = wp_remote_fopen( 'http://plugins.svn.wordpress.org/advanced-custom-fields/trunk/readme.txt' );
$regexp = '/== Changelog ==(.*)= ' . $version . ' =/sm';
$o = '';
if( !$readme )
{
return;
}
preg_match( $regexp, $readme, $matches );
if( ! isset($matches[1]) )
{
return;
}
$changelog = explode('*', $matches[1]);
array_shift( $changelog );
if( !empty($changelog) )
{
$o .= '<div class="acf-plugin-update-info">';
$o .= '<h3>' . __("What's new", 'acf') . '</h3>';
$o .= '<ul>';
foreach( $changelog as $item )
{
$item = explode('http', $item);
$o .= '<li>' . $item[0];
if( isset($item[1]) )
{
$o .= '<a href="http' . $item[1] . '" target="_blank">' . __("credits",'acf') . '</a>';
}
$o .= '</li>';
}
$o .= '</ul></div>';
}
echo $o;
}
Ad: ここで は私が関わっているプラグインのためにこれをどのようにしたかです。