WordPressの管理画面を他のメンバーにも触らせたいが、
メニューが多すぎて混乱する、設定を変更してしまってサイトを壊してしまうといったことが懸念される。
記事の投稿などを行うユーザを、投稿権限で分離して、安全なサイト運用を行おう
権限を制限したユーザの作成
管理画面で「ユーザ>新規追加」でユーザ作成画面を開く。
ユーザ名、メールアドレスは必須項目なので入力。
権限グループを「編集者」にして、「新規ユーザを追加する」をクリックする。
作成した「編集者」のアカウントでログインすると、左メニューは下記のようになっている。
これだけでもある程度管理画面で使用できる項目が制限されていてありがたい。
管理者だとこんな感じ
外観やプラグイン管理が消えているので、WordPress自体の設定変更ができなくなっている。
なお、削除されたメニュー項目に、編集者のアカウントでアクセスするとこうなる。
ちゃんとアクセス制限がかかっていることがわかる。
権限の編集
デフォルトで権限を制限してくれることは分かったが、この権限設定を自分のサイトに都合がいいように制御したい。
そんなときは、function.phpに下記のコードを追加する。
function remove_menus () {
global $menu;
//管理者以外のユーザに関しては、下記メニュー削除
if (!current_user_can('level_10')) {
unset($menu[5]);//投稿
}
}
add_action('admin_menu', 'remove_menus');
上記の場合、投稿が削除される。カスタム投稿でブログを作っている場合、
投稿は使用しないケースも多いので消したいことがほとんどだろう。
unsetで消したいメニューの項目を削除すれば、指定の権限で該当のメニューは出なくなる。
具体的に$menuの何番目の値を消せばメニューから削除できるかについては、
列挙するよりもvar_dumpで$menuを出力してみるほうが早いだろう。