説明
パラメータ
- $parent_slug親メニューのスラッグ。
- $page_titleサブメニューページのタイトル。
- $menu_titleプルダウンに表示されるメニュー名。
- $capabilityサブメニューの権限(
レベル数または権限名)。 - $menu_slugサブメニューのスラッグ。
- $functionサブメニューページのコールバック関数(省略時は'')。
- $position[5.3.0]サブメニューの位置を数値で指定(省略時はnull)。
返り値
サブメニューが登録できた場合はフック名を返す。ログインしているユーザーが指定された権限を所有していない場合はfalseを返す。注意
パラメータ$parent_slugは親メニューのスラッグで、 add_menu_page関数で登録できるプラグインやテーマの専用メニューの場合には__FILE__が利用されることが多い。
パラメータ$capabilityは、サブメニューを使用できるレベルまたは権限を指定できる(「LevelとCapability」を参照)。
パラメータ$menu_slugにはサイト内でユニークなサブメニューのスラッグを指定する(このスラッグは、サブメニューページのURLのパラメータとなる)。
[5.3.0]パラメータ$positionが追加された。0が指定された場合はサブメニューの最上位に、nullかサブメニュー数以上の場合は末尾に追加される。メニュー数未満の場合、array_slice関数を使ってサブメニューの配列が分割され、分割された位置に挿入される(1の場合なら2番目となる)。
使用例
- プライベートのmytheme_propertiesメニューにmytheme_settingサブメニューを登録する。<?php add_submenu_page( 'mytheme_properties', '基本設定', '基本設定', 'edit_themes', 'mytheme_setting', 'mytheme_setting' ); ?>
- プライベートのmytheme_propertiesメニューにmytheme_settingサブメニューを登録する(コールバック関数がメソッドの場合)。<?php add_submenu_page( 'mytheme_properties', '基本設定', '基本設定', 'edit_themes', 'mytheme_setting', array( &$this, 'mytheme_setting' ) ); ?>
- カスタム投稿タイプ'tools'のメニューにadvanced_settingサブメニューを登録する(コールバック関数がメソッドの場合)。<?php add_submenu_page( 'edit.php?post_type=tools', 'ツールの拡張設定', '拡張設定', 'edit_themes', 'advanced_setting', array( &$this, 'advanced_setting' ) ); ?>
フィルター
実行するフィルターはありません。アクション
実行するアクションはありません。ソースファイル
/wp-admin/includes/plugin.php最終更新 : 2022年06月24日 15:01
関連
お勧め
フォーム内のエスケープ処理を考える(2018年10月19日 更新)
WordPressにはエスケープ処理を行う esc_html関数と esc_attr関数がある。HTML要素(タグ)の属性値ならesc_attr関数を、それ以外はesc_html関数を使うことがほとんどだが、今回esc_html関数が適していないと思われるケースに遭遇した。
適切なテンプレートファイルを用意してテンプレート内の振り分け処理を無くす(2019年5月24日 更新)
/wp-includes/template-loader.phpではリクエストされたページに応じて現在のテーマにあるテンプレートファイルの中から適切なものを選びに振り分けている。ここでは、さまざまなテンプレートファイルの種類と、テンプレートファイルが省略された場合の内部の動作についてまとめてみる。テーブルブロックを定形に整える(2021年12月27日 更新)
ブロックエディターについて調べていると、「段落ブロックをもう少しカスタマイズした」で使ったRichTextShortcutとは別にショートカットキーを使うためのKeyboardShortcutsが見つかった。今回はこのKeyboardShortcutsを使ってテーブルブロックを定形に整える仕組みを考えてみた。
テーブルブロックを投稿メタ(カスタムフィールド)に保存する(2022年1月5日 更新)
ふと「テーブルブロックの内容を投稿メタ(カスタムフィールド)として保存できたら便利なのでは」と思い、投稿メタの使い方を調べてみた。
ブロックエディターで現在の「ロケール」を取得した時のメモ(2024年8月10日 更新)
ブロックエディター向けのプラグインで日本語固有の機能を実装する際、現在のロケール(言語)を取得したい。ブロックエディターの編集時、投稿を編集しているユーザーの言語が優先され、それをどうやって取得するかを「ChatGPT」に聞いてみたのだが。。。