かなり昔に保守されなくなったdefault-thumbnail-plusプラグインと言うプラグインを愛用しています。
Query monitorというプラグインのバージョンアップをしたら、default-thumbnail-plusプラグイン関連で以下のような警告が出るようになりました。
Deprecated: contextual_help is deprecated since version 3.3.0! Use get_current_screen()->add_help_tab(), get_current_screen()->remove_help_tab() instead.
内容としては、Wordpress3.3以降ではcontextual_helpフックは使わずに、get_current_screen()->add_help_tab(), get_current_screen()->remove_help_tab()を使いなさい、ということらしいです。
ちなみにQuery monitorのバージョンアップで警告が出るようになった理由は、次の内容によるためです。
3.13.0
https://wordpress.org/plugins/query-monitor/#developers
- Adds a dedicated panel for “Doing it Wrong” and deprecated functionality usage
deprecated functionality usage警告が発生する箇所
問題の箇所は以下のadd_filter('contextual_help'
の場所です。
if ( is_admin() ){
// admin actions
include('include'.DIRECTORY_SEPARATOR.'slt-file-select.php');
add_action('admin_menu', array('DefaultPostThumbnailPlugin', 'init_plugin_menu'));
add_action('admin_enqueue_scripts', array('DefaultPostThumbnailPlugin', 'backend_enqueue_scripts') );
add_action('admin_init', array('DefaultPostThumbnailPlugin', 'register_settings'));
add_filter('contextual_help', array('DefaultPostThumbnailPlugin', 'contextual_help'), 10, 3);
} else {
// non admin actions
if(get_option('dpt_hook_post_meta', true))
DefaultPostThumbnailPlugin::add_filter_post_metadata();
}
この部分を変える必要があります。
修正方法
こちらの記事を見ると、add_filter('contextual_help'
⇒add_action('current_screen'
に変更すれば良さそうでした。
add_action('current_screen'
とは?
公式サイトによれば、このアクションフックが発火されるのは、
Fires after the current screen has been set.
とあります。
do_action( ‘current_screen’, WP_Screen $current_screen )
$current_screenオブジェクトを受け取って、処理するcallback関数を書けば良さそうです。
修正コード
再度こちらを見ると、以下のようなコードが書かれています。
$screen = get_current_screen();
$help_content = ‘<p>Hallo world</p>’;
$screen->add_help_tab(
array( ‘id’ => ‘my-contextual-screen-id’,
‘title’ => ‘Screen information’,
‘content’ => $help_content, ));
この内容をdefault-thumbnail-plusプラグインにあわせて、callback関数で処理してあげれば良さそうです。
contextual_help($screen)というcallback関数を新規に定義します。
if ( is_admin() ){
// admin actions
include('include'.DIRECTORY_SEPARATOR.'slt-file-select.php');
add_action('admin_menu', array('DefaultPostThumbnailPlugin', 'init_plugin_menu'));
add_action('admin_enqueue_scripts', array('DefaultPostThumbnailPlugin', 'backend_enqueue_scripts') );
add_action('admin_init', array('DefaultPostThumbnailPlugin', 'register_settings'));
//add_filter('contextual_help', array('DefaultPostThumbnailPlugin', 'contextual_help'), 10, 3);
add_action('current_screen', 'contextual_help', 10);
} else {
// non admin actions
if(get_option('dpt_hook_post_meta', true))
DefaultPostThumbnailPlugin::add_filter_post_metadata();
}
function contextual_help($screen){
global $dpt_plugin_hook;
$contextual_help = '<a target="_blank" href="http://www.pjgalbraith.com/2011/12/default-thumbnail-plus/">Full Documentation with Images!</a><br><a target="_blank" href="http://wordpress.org/extend/plugins/default-thumbnail-plus/">WordPress.org Plugin Page</a>';
$screen->add_help_tab(array(
'id' => $dpt_plugin_hook,
'title' => 'Screen information',
'content' => $contextual_help,
));
}
まとめ
今回の警告が影響するのは、管理画面の設定⇒default-thumbnail-plusと進んで、画面最上部に表示されるhelpタブの部分です。
機能的には全く影響がないものですが、警告を消したいという場合は自己責任で行いましょう。