remove_menu_page() の使い方|説明・引数・注意点

説明

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

コメント

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