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
こういったプラグインも合わせて使ってみると、なかなか思い通りになる。
並び順もドラッグで簡単に入れ替えや、特定メニューの非表示。
メニュー名も書き換えられるので、例えば「メディア」と「写真のアップ」などに変更するのも簡単♪