admin_menu フックの使い方|説明・引数・注意点

説明

admin_menu は、管理画面のメニューを作る段階で実行されるアクションです。メニューページの追加・削除に使います。

基本構文

do_action( 'admin_menu' )

引数

引数はありません。

戻り値

引数はありません。

使い方(サンプル)

add_action( 'admin_menu', function() {
	add_menu_page( '設定', 'マイ設定', 'manage_options', 'my-page', 'my_page_html' );
} );

注意点

  • マルチサイトのネットワーク管理画面は network_admin_menu です。

実務での使いどころ

  • 管理画面の、左メニューに、独自のページを追加するとき。
  • メニューの項目を、非表示にするとき(remove_menu_page())。

よくあるミスと対処

  • メニューを追加するときに、権限($capability)が、緩すぎる。
  • 追加の処理より前に、remove_menu_page() を実行してしまい、消えない。優先度を、大きく(999 など)する。
  • マルチサイトの、ネットワーク管理画面には、network_admin_menu フックを使う。

NG例

add_action( 'admin_menu', function () {
	add_menu_page( '設定', '設定', 'read', 'my-settings', 'my_page' ); // 権限が緩い
} );

OK例

add_action( 'admin_menu', function () {
	add_menu_page( 'サイト設定', 'サイト設定', 'manage_options', 'my-settings', 'my_settings_page' );
} );

使い分け早見表

フック 対象
admin_menu 管理画面のメニュー
network_admin_menu ネットワーク管理画面のメニュー(マルチサイト)
admin_init 管理画面の読み込み時

関連項目

add_menu_page()、admin_init、add_submenu_page()

公式リファレンス:admin_menu | WordPress Developer Resources

コメント

タイトルとURLをコピーしました