説明
remove_menu_page() は、管理画面の左メニューから、メニュー項目を削除する関数です。
基本構文
remove_menu_page( string $menu_slug ): array|false
引数
$menu_slug:削除するメニューのスラッグ(例:edit-comments.php)
戻り値
削除したメニューの情報。見つからなければ false。
使い方(サンプル)
add_action( 'admin_menu', function() {
remove_menu_page( 'edit-comments.php' );
} );
注意点
- メニューを非表示にするだけで、URLを直接開けばアクセスできます。権限の制御ではありません。
実務での使いどころ
- クライアント向けに、不要なメニューを、非表示にするとき。
- プラグインが追加したメニューを、隠すとき。
よくあるミスと対処
- メニューを消すだけで、URLを直接開けば、アクセスできる。操作させたくない画面は、権限(ロール)の制限も行う。
- 追加の処理より前に実行され、メニューが消えない。
admin_menuフックの優先度を、大きく(999など)する。 - 管理者も含めて、消している。管理者を除外する条件を入れる。
NG例
add_action( 'admin_menu', function () {
remove_menu_page( 'plugins.php' ); // 管理者も含めて消え、直接URLでは開ける
} );
OK例
add_action( 'admin_menu', function () {
if ( ! current_user_can( 'manage_options' ) ) {
remove_menu_page( 'edit-comments.php' );
}
}, 999 );
使い分け早見表
| 関数 | 対象 |
|---|---|
remove_menu_page() |
トップレベルのメニュー |
remove_submenu_page() |
サブメニュー |
add_menu_page() |
メニューを追加する |
関連項目
add_menu_page()、remove_submenu_page()
公式リファレンス:remove_menu_page() | Function | WordPress Developer Resources

コメント