説明
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 |
管理画面の読み込み時 |

コメント