管理メニューを追加する関数に、add_menu_page()に使って管理メニューを追加を実装します。
add_action('admin_menu', function(){
add_menu_page(
string $page_title, // 必須。メニューが選択されたときにページのタイトルタグに表示されるテキスト。
string $menu_title, // 必須。メニューのタイトルに使用するテキスト。
string $capability, // 必須。このメニューをユーザーに表示するために必要な権限。
string $menu_slug, // 必須。このメニューを参照するスラッグ名。
callable $function = '', // 任意。このページのコンテンツを出力するために呼び出される関数。
string $icon_url = '', // 任意。このメニューに使用されるアイコンへの URL。
int $position = null // 任意。この項目が表示されるメニュー順序の位置。
);
});
・$page_title(必須)
メニューが選択されたときにページのタイトルタグに表示されるテキスト。
・$menu_title(必須)
メニューのタイトルに使用するテキスト。
本記事のサンプルでは、WordPress管理コンソールの左側に「テスト用トップメニュー」と表示されます。
・$capability(必須)
このメニューをユーザーに表示するために必要な権限。
本記事のサンプルでは、管理メニューへのアクセスを許可するmanged_options権限を付与しています。
・$menu_slug(必須)
このメニューを参照するスラッグ名。
このメニューページに対して一意である必要があります。また、使用できる文字は 小文字の英数字、ダッシュ、およびアンダースコア文字のみです。
・$function(任意)
このページのコンテンツを出力するために呼び出される関数。
・$icon_url(任意)
このメニューに使用されるアイコンへの URL。
plugins_url関数などを使ってプラグインに内包されたアイコンへのURLを渡します。
また、Dashiconsのフォントアイコンを使用できます。本記事のサンプルでは、カレンダーのアイコンであるdashicons-calendarを使っています。
・$position(任意)
この項目が表示されるメニュー順序の位置。
デフォルトでは管理メニュー構造の一番下になります。本記事のサンプルでは指定し、一番上に表示しています。
メニュー構造にどこに位置づけるかは、下記を参考に設定します。
2 – ダッシュボード
4 – セパレーター
5 – 投稿
10 – メディア
15 – リンク
20 – ページ
25 – コメント
59 – セパレーター
60 – 外観
65 – プラグイン
70 – ユーザー
75 – ツール
80 – 設定
99 – セパレーター
・$hook_suffix(任意)
この管理メニューで表示されるページの処理結果を受け取る関数の接頭子。