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

公開日:2023(令和5)年3月30日/最終更新日:

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)

【景品表示法に基づく表記】ページ内のコンテンツには、商品プロモーションが含まれています

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

WordPress管理画面のヘルプタブ

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

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

ヘルプタブの表示例

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

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

ヘルプタブの内容
ヘルプタブに内容を追加した結果の画面

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

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

コードを使用する前に、ここをクリックして注意事項をご確認ください

本ページで掲載しているコードは、以下に了承した上で使用ください

  • コードは商用・非商用問わず自由に使っていただいて構いませんが、コード追加による不具合やトラブルが発生しても当方では一切責任を負いません
  • コードは有効化しているテーマのfunctions.php、style.cssなどへ追加することで機能します。それらのファイルへの変更を行うことに不安のある方は使用しないでください
  • コードは本ページの公開日時点で私の環境において動作したものです。WordPressバージョン他環境の違いによって動作しないことがあります
  • コードは、セキュリティ、コードの正確さなどにおいて完全なものではありません。中には紹介するコードを簡略化するために省略している部分があるものもありますので、ご自身でコードを十分に検証し、必要な部分の編集を行った上で使用するようにしてください
  • 掲載しているのは参考コードです。自身の環境に合わせるための編集はご自身で対応いただく必要があります(コメント欄等から質問いただいても基本回答は致しません)
  • 掲載しているコードの転載を禁じます(SNSで紹介いただいたり、本ページへのリンクを張っていただくことは大歓迎です)

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

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

以下のコードを有効化しているテーマの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');

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

現在のページを示すhook_suffixの値

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

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

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

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

, , , , , , ,
Lolipop ServerMoshimo Ad x-serverMoshimo Ad

WordPress Customize Ideas | Personal WP Customization Notes (PWCN)
functions.phpからセキュリティヘッダーを追加する方法(例)