管理画面で不要なメニューを非表示にする

管理画面のメニューで、案件によっては更新に必要な項目以外を非表示にしたいという要望があるので、メニューから指定した項目を非表示にする方法をメモ。

サンプルコード

特に設定を行ってない場合、メニューは以下のように表示されています。

メニューにダッシュボード・投稿・メディア・ユーザーのみ表示したい場合、functions.phpに以下のように記述します。

functions.php

function hide_admin_menu() {
  global $menu;

//unset($menu[2]); // ダッシュボード
//unset($menu[5]); // 投稿
//unset($menu[10]); // メディア
  unset($menu[20]); // 固定ページ
  unset($menu[25]); // コメント
  unset($menu[60]); // 外観
  unset($menu[65]); // プラグイン
//unset($menu[70]); // ユーザー
  unset($menu[75]); // ツール
  unset($menu[80]); // 設定
}
add_action('admin_menu', 'hide_admin_menu');

functions.phpに記述後、以下のような表示になりました。

メディアやユーザーも非表示にしたい場合、コメントアウトを外せば非表示にできます。
 

プラグインが表示される場合

プラグインを追加している場合、メニューに表示される場合があります。
例えば、Custom Field Suiteを追加している場合は以下のように表示されます。

追加したプラグインをメニューから外したい場合、$menuのキーを調べる必要があります。
var_dump($menu);で表示させることで確認できます。

functions.php

function hide_admin_menu() {
  global $menu;
  var_dump($menu);
}
add_action('admin_menu', 'hide_admin_menu');

Custom Field Suiteの場合は120なので、最初のコードに以下のように記述を追加します。

functions.php

function hide_admin_menu() {
  global $menu;

//unset($menu[2]); // ダッシュボード
//unset($menu[5]); // 投稿
//unset($menu[10]); // メディア
  unset($menu[20]); // 固定ページ
  unset($menu[25]); // コメント
  unset($menu[60]); // 外観
  unset($menu[65]); // プラグイン
//unset($menu[70]); // ユーザー
  unset($menu[75]); // ツール
  unset($menu[80]); // 設定

  // Custom Field Suite
  unset($menu[120]); // フィールドグループ
}
add_action('admin_menu', 'hide_admin_menu');

これでCustom Field Suiteもメニューから非表示にすることができました。

ただし、今回の実装はメニューから非表示にしているだけなので、URLに直接アクセスするなどすれば各ページを表示することはできるので注意してください。

 

【参考サイト】

 

このエントリーをはてなブックマークに追加

関連記事

コメントを残す

メールアドレスが公開されることはありません。
* が付いている欄は必須項目です

CAPTCHA


コメントが承認されるまで時間がかかります。

2024年11月
 12
3456789
10111213141516
17181920212223
24252627282930