管理画面のメニューで、案件によっては更新に必要な項目以外を非表示にしたいという要望があるので、メニューから指定した項目を非表示にする方法をメモ。
サンプルコード
特に設定を行ってない場合、メニューは以下のように表示されています。
メニューにダッシュボード・投稿・メディア・ユーザーのみ表示したい場合、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に直接アクセスするなどすれば各ページを表示することはできるので注意してください。
【参考サイト】
コメントが承認されるまで時間がかかります。