説明
remove_submenu_page() は、管理画面のサブメニュー項目を削除する関数です。
基本構文
remove_submenu_page( string $menu_slug, string $submenu_slug ): array|false
引数
$menu_slug:親メニューのスラッグ$submenu_slug:サブメニューのスラッグ
戻り値
削除した項目。見つからなければ false。
使い方(サンプル)
remove_submenu_page( 'themes.php', 'theme-editor.php' );
注意点
- 非表示にするだけで、直接URLを開くとアクセスできます。
実務での使いどころ
- 特定のサブメニュー(パーマリンク設定など)を、非表示にするとき。
よくあるミスと対処
- メニューを消すだけで、URLを直接開けば、アクセスできる。
- 親メニューのスラッグと、サブメニューのスラッグを、取り違えている。
- 追加の処理より前に実行され、消えない。
admin_menuフックの優先度を、大きくする。
NG例
remove_submenu_page( 'options-permalink.php', 'options-general.php' ); // 親とサブの、スラッグが逆
OK例
add_action( 'admin_menu', function () {
remove_submenu_page( 'options-general.php', 'options-permalink.php' );
}, 999 );
使い分け早見表
| 関数 | 対象 |
|---|---|
remove_submenu_page() |
サブメニュー |
remove_menu_page() |
トップレベルのメニュー |
add_submenu_page() |
サブメニューを追加する |
関連項目
remove_menu_page()、add_submenu_page()
公式リファレンス:remove_submenu_page() | Function | WordPress Developer Resources

コメント