2012.11.19

WordPress管理画面で、管理者以外には不要なメニューを隠す

私がやっているクライアントさん向けのカスタマイズの一つ。 『”管理者権限以外”の人には管理画面のサイドバーの不要なメニューを隠す』方法をご紹介します。 最初はそんなことが出来ると知らずに設定してあげていなかったのでちょっと申し訳ないです(゚ロ゚;) 使わないものとか触られると困るものとか下手にいじられてトラブルになるよりは、思い切って削除してしまったほうがお互いの為にいいと思いますねー。   functions.phpに以下のコードを貼り付け!
// 管理画面サイドバーメニュー非表示(管理者以外)
function remove_menus () {
 if (!current_user_can('level_10')) { //level10以下のユーザーの場合メニューをunsetする
 remove_menu_page('wpcf7'); //Contact Form 7
 global $menu;
 unset($menu[4]);//メニューの線1
 unset($menu[15]);//リンク
 unset($menu[20]);//ページ
 unset($menu[25]);//コメント
 unset($menu[59]);//メニューの線2
 unset($menu[60]);//テーマ
 unset($menu[65]);//プラグイン
 unset($menu[70]);//プロフィール
 unset($menu[75]);//ツール
 unset($menu[80]);//設定
 unset($menu[90]);//メニューの線3
 }
}
add_action('admin_menu', 'remove_menus');

こんな感じに↓

WordPressサイドバーメニュー

WordPressサイドバーメニュー

すっきりしますねー。

if(!current_user_can(‘level_10′))の記述がなければ、全ての権限に適用されてしまいますので、管理者であってもメニューが非表示になります。

例えば、プロフィールは表示しておきたい!という場合は、unset($menu[70]);//プロフィールの一行を削除すれば表示されます。 上記のコードではContact Form7プラグインのお問い合わせメニューも非表示になりますので、3行目のremove_menu_page(‘wpcf7’); //Contact Form 7の記述を削除すれば表示されます。   その他非表示にしたいメニューがある場合は/wp-admin/menu.phpの中に$menu[80]など書いてあるので、ここで調べることができますよー。