この記事は最後に更新してから1年以上経過しています。

5.3の機能強化:サブメニューの位置が指定可能になる

説明

プラグインや一部のテーマでは管理画面の左側にあるナビゲーションメニューに任意のサブメニューを追加できる。従来、追加したサブメニューは既存のサブメニューの末尾となっているが、5.3ではその場所を指定できるようになる。

サブメニューは末尾に追加される

まずはおさらい。管理画面の「設定」メニューにサブメニューを追加する場合、 add_options_page関数を使用する。

function my_option_submenu1() {
	// サブメニュー1の内容を記述
}

function my_admin_menu() {
	add_options_page( 'サブメニュー1', 'サブメニュー1', 'manage_options', 'option_submenu1', 'my_option_submenu1' );
}

add_action( 'admin_menu', 'my_admin_menu' );

管理画面の「設定」メニューを展開すると、上記で指定した「サブメニュー1」は末尾に追加されている。

展開した「設定」メニューの末尾に追加された「サブメニュー1」

このことは「投稿」や「ツール」など、ほかのメニューも同様である。

関連する関数にパラメータ$positionが追加される

5.3 RC2のソースコードを眺めていると、add_options_page関数にパラメータ$positionが追加されており、そのほかのサブメニューを追加する関数も同様だった。このパラメータ$positionint 型で、省略時は null となっている。

上記のadd_options_page関数のパラメータに「0」を追加してみる。

add_options_page( 'サブメニュー1', 'サブメニュー1', 'manage_options', 'option_submenu1', 'my_option_submenu1', 0 );

表示された「設定」メニューでは、「サブメニュー1」が「一般」の上になっている。

展開した「設定」メニューのトップに追加された「サブメニュー1」

今度はパラメータを「0」から「3」に変更してみる。

add_options_page( 'サブメニュー1', 'サブメニュー1', 'manage_options', 'option_submenu1', 'my_option_submenu1', 3 );

「サブメニュー1」は期待通り「表示設定」の次になる。

展開した「設定」メニューの4番目に「サブメニュー1」が表示される

このように、パラメータ$positionに数値を指定することで、サブメニューを好みの位置に表示できるようになる。


最後に5.3でパラメータ$positionが追加されたサブメニュー関数をまとめる。

関数名概要
add_submenu_pageサブメニュー関数の本体
add_dashboard_page「ダッシュボード」メニュー
add_posts_page「投稿」メニュー
add_media_page「メディア」メニュー
add_pages_page「固定ページ」メニュー
add_comments_page「コメント」メニュー
add_theme_page「外観」メニュー
add_plugins_page「プラグイン」メニュー
add_users_page「ユーザー」メニュー
add_management_page「ツール」メニュー
add_options_page「設定」メニュー
add_links_page「リンク」メニュー

なお、サブメニューの表示内容はそのほかのプラグインの影響を受ける。複数のプラグインを使用する場合は、それらのロード順や'admin_menu'アクションを実行する優先度を考慮しよう。


最終更新 : 2019年10月29日 11:36


お勧め

get_the_post_thumbnail_caption(2018年5月27日 更新)

string get_the_post_thumbnail_caption( mixed $post = null )
投稿ページのサムネイル(アイキャッチ画像)キャプションを取得する。

wp_enqueue_style(2019年11月25日 更新)

void wp_enqueue_style( string $handle [ , string $src = false [ , array $deps = array() [ , string $ver = false [ , string $media = 'all' ] ] ] ] )
使用するスタイルシート(CSS)を出力用のキューに入れる。パラメータ$srcが指定された場合は、グローバル変数$wp_stylesに登録してから出力用のキューに入れる。

post_class(2018年5月27日 更新)

void post_class( [ string $class = '' [ , int $post_id = null ] ] )
投稿情報の種別に応じたクラス属性(class="post-?? post ...")を表示する。具体的なクラス名は、投稿ID(post-番号)、投稿種別(postやpage)、カテゴリー(category-名前)、タグ(tag-名前)などがある。これらクラス名に合わせたCSSを準備することで、投稿ページのユニークなデザインが表現可能になる。

get_header(2020年8月18日 更新)

void | false get_header( [ string $name = null [ , array $args = array() ] ] )
ヘッダパーツを記述したメインヘッダファイルheader.php(またはサブヘッダファイルheader-???.php)を読み込む。

get_the_excerpt(2018年5月27日 更新)

string get_the_excerpt( [ mixed $post = null$deprecated = '' ] )
投稿情報の抜粋記事を取得する。