wordpressで複数の管理者がいる時、他の管理者に特定のメニューを表示させたくない

自分以外の人が、ワードプレスにログインする場合。納品するワードプレスから、触られると困るメニューがある場合。自分以外のアカウントでは、特定のメニューを表示させたくないなー。非表示にするいい方法ないかなぁ・・・

こんな願いを叶えるべくワードプレスのプラグインは結構ありますが、サイトの作りや、他のプラグインと相性の問題などなど、
色々な理由でプラグインが使えなかったとき、以下のようなコードをfunctions.phpに書くと、制御ができます。

function remove_menus () {
	global $menu;
	global $current_user;
	get_currentuserinfo();
	if($current_user -> ID != "1") {//  ←このユーザーID以外に適応される
		$restricted = array(
		__('ダッシュボード'),// ←非表示にしたいメニュー名を記載
		__('投稿'),
		__('メディア'),
		__('固定ページ'),
		__('コメント'),
		__('お問い合わせ'),
		__('外観'),
		__('プラグイン'),
		__('ユーザー'),
		__('ツール'),
		__('設定')
		);
		end ($menu);
		while (prev($menu)){
			$value = explode(' ',$menu[key($menu)][0]);
			if(in_array($value[0] != NULL?$value[0]:"" , $restricted)){
				unset($menu[key($menu)]);
			}
		}
		remove_submenu_page('index.php','update-core.php'); //←更新非表示
		remove_menu_page('flamingo'); //←プラグインにカーソルを当てるとpage=***と表示される***の部分を記載
}
add_action('admin_menu', 'remove_menus');

ユーザーIDは、wordpress管理メニューのユーザー一覧に表示されるユーザーにカーソルをのっけるとわかる。
もしくはユーザーをクリックするとアドレスバーのURLを見ればわかる。

お決まりですが、functions.phpを編集するので、編集の前に必ずバックアップを取ってから編集しよう。

個人的に使いやすいと思った、管理メニューエディタープラグイン

Admin Menu Editor
こういったプラグインも合わせて使ってみると、なかなか思い通りになる。

並び順もドラッグで簡単に入れ替えや、特定メニューの非表示。
メニュー名も書き換えられるので、例えば「メディア」と「写真のアップ」などに変更するのも簡単♪

おすすめの記事