Personal WP Customization Notes (PWCN)

WordPressで実際に行ったカスタマイズの記録、発生した問題への対処時のメモ、ブロックテーマのカスタマイズなど

自作プラグインの設定画面へヘルプタブを表示する方法

使い慣れてしまうとほとんど見る機会はないと思いますが、管理画面のいろいろなページの右上に下図のようなヘルプタブが表示されるのはご存じですよね?

今回はこれを自作プラグインの設定画面に表示させるための方法を自身のメモも兼ねて紹介します。

もちろん、既存のヘルプタブへ何かを追加することもできます。

ヘルプタブの表示例

本ページの方法を用いるとどのようにできるのかをまずはデモ代わりに..。

画像上が通常のダッシュボードのヘルプ、下が本ページの方法で2つのヘルプ項目を追加した場合の画面です。

赤枠の部分が追加されてますね。これを実装します。

え?こんな簡単な方法で実装できるの?と自身もびっくりしました(笑)。

【基本】ひとまずダッシュボードヘルプへ項目を追加してみる

まずは試しに、上図のようにダッシュボードへヘルプ項目を追加してみましょう。

以下のコードを有効化しているテーマのfunctions.phpへ追加します。

// ヘルプタブのコンテンツを追加します。
function my_admin_dash_add_help_tab () {
//1つめのタブ
	$title = 'ダッシュボードにヘルプを追加してみた①';
	$content = '<p>追加した説明文</p>';

	get_current_screen()->add_help_tab( array(
		'id'    => 'my_dashboard_help_tab',
		'title' => $title,
		'content' => $content,
	) );

//2つめのタブ
	$title2 = 'ダッシュボードにヘルプを追加してみた②';
	$content2 = '<p>追加した説明</p>';

	get_current_screen()->add_help_tab( array(
		'id'    => 'my_dashboard_help_tab2',
		'title' => $title2,
		'content' => $content2,
	) );
}
add_action('load-index.php', 'my_admin_dash_add_help_tab');

コードの簡単な説明

コードの中の「get_current_screen()->add_help_tab」というのがキモで、読んで字のごとく、「現在の画面のヘルプタグへ追加しなさい」というものです。

これを使って、以下の出力内容が指定できます(上記コードでは赤字のものだけを指定しています)。

パラメーター内容
id他のヘルプと競合しない一意のIDを任意に指定します
titleヘルプを開いた時のタブ(見出し)のタイトルを指定します
contentタブをクリックした際右に表示する本文を指定します
callback他の関数から流用するかの指定(true false)です
priority優先度を指定します

あとは、「load-」フックで「現在のページ」となるものを指定すればOKです。

【応用】自作プラグインの設定ページなどへ項目を追加する

前項で紹介したコードの説明の中で、最後に「現在のページ」となるものを指定すると書きました。

これを知るには、以下のコードを有効化しているテーマのfunctions.phpへ追加します。

/***** hook_suffixを調べたい時だけ有効にする(調べ終わったら削除) *****/
function current_pagehook(){
	global $hook_suffix;
	if( !current_user_can( 'manage_options') ) return;
	echo '<div class="updated"><p>hook_suffix : ' . $hook_suffix . '</p></div>';
}
add_action('admin_notices', 'current_pagehook');

これを追加すると、管理画面のページを開いた時、上の方に下図のように「現在のページ」が表示されるようになります(下図は「ダッシュボード」の場合です)。

これを前項のコードのアクションフック(load-〇〇)の〇〇に入れて、表示させたいものを設定すれば、ヘルプのないページは自動でヘルプタグが出現し、既にヘルプタグのあるページでは既存のヘルプと共に表示されます。

こんなカスタマイズをしたい方なら説明の必要はないかも知れませんが、ユーザー定義関数名はページごとに替えてくださいね

参考にさせていただいたページなど

今回のカスタマイズ方法を知るにあたり、参考にさせていただいたページや、公式内のデベロッパーリソースのページです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

※リンクやURLの挿入されているコメントは無視します

WordPressサイトのカスタマイズ方法、機能追加を行うプログラム例など
functions.phpからセキュリティヘッダーを追加する方法(例)