WordPressの管理画面から新規でユーザーを追加する際に、jQueryで特定の権限グループしか選択できないように表示制限する方法が紹介されていましたので、シェアさせていただきました。
複数人でサイトを運営するような場合は、誤っていくつも管理者ユーザーを作成してしまったり、ユーザーの権限グループを変更し間違えることを防止するため、最初から不要な権限グループは表示しないようにしておく方が良いかと思います。
「一般設定」の新規ユーザーのデフォルト権限グループを制限
wp-admin/options-general.php の「新規ユーザーのデフォルト権限グループ」のプルダウンメニューで、権限グループを「購読者」と「寄稿者」のみに表示制限してみます。以下のコードをご利用のテーマのfunctions.phpに追記します。
1 2 3 4 5 6 7 8 9 10 11 12 |
function remove_role_options_general() { ?><script type="text/javascript"> jQuery(document).ready(function($){ $("option[value='administrator'").remove();//管理者 $("option[value='editor'").remove();//編集者 $("option[value='author'").remove();//投稿者 //$("option[value='contributor'").remove();//寄稿者 //$("option[value='subscriber'").remove();//購読者 }); </script><?php } add_action( 'admin_head-options-general.php', 'remove_role_options_general' ); ?> |
4〜8行目は、jQueryのremoveで非表示にしたい権限グループを指定しています。表示したい(選択可能にする)権限グループについては$(“option[value…)の記述をコメントアウトするか、記述自体を削除します。
11行目は、admin_headフックでoptions-general.phpを指定し、一般設定ページに限定して関数を実行させています。
「新規ユーザーを追加」ページの権限グループを制限
続いて、wp-admin/user-new.php の「権限グループ」のプルダウンメニューを、同じく「購読者」と「寄稿者」のみに表示制限してみます。
1 2 3 4 5 6 7 8 9 10 11 12 |
function remove_role_user_new() { ?><script type="text/javascript"> jQuery(document).ready(function($){ $("option[value='administrator'").remove();//管理者 $("option[value='editor'").remove();//編集者 $("option[value='author'").remove();//投稿者 //$("option[value='contributor'").remove();//寄稿者 //$("option[value='subscriber'").remove();//購読者 }); </script><?php } add_action( 'admin_head-user-new.php', 'remove_role_user_new' ); ?> |
admin_headフックでuser-new.phpを指定すれば、新規ユーザーを追加ページに対して関数が実行されます。
「ユーザープロフィール」ページの権限グループを制限
すでに登録済みのユーザーの権限グループを変更する場合も、上記と同じように「購読者」と「寄稿者」のみに表示制限することができます。
1 2 3 4 5 6 7 8 9 10 11 12 |
function remove_role_user_edit() { ?><script type="text/javascript"> jQuery(document).ready(function($){ $("option[value='administrator'").remove();//管理者 $("option[value='editor'").remove();//編集者 $("option[value='author'").remove();//投稿者 //$("option[value='contributor'").remove();//寄稿者 //$("option[value='subscriber'").remove();//購読者 }); </script><?php } add_action( 'admin_head-user-edit.php', 'remove_role_user_edit' ); ?> |
ユーザープロフィールページで表示制御したい場合は、admin_head
フックでuser-edit.phpを指定します。
プラグインで追加された権限グループも非表示に
WordPressのデフォルトの権限グループは「管理者」「編集者」「投稿者」「寄稿者」「購読者」ですが、プラグインによっては権限グループが追加され、上記の各ページのプルダウンメニューから選択できるようになります。例えば、WordPressのファイルやデータベースのバックアップが可能な「Backwpup」の場合、プラグインを有効化したら「BackWPup ジョブヘルパー」「BackWPup ジョブチェッカー」「BackWPup 管理」の権限グループが追加されますので、これらも非表示にしたい場合はfunctions.phpに以下のコードを足してください。
1 2 3 |
$("option[value='backwpup_helper'").remove();//BackWPup ジョブヘルパー $("option[value='backwpup_check'").remove();//BackWPup ジョブチェッカー $("option[value='backwpup_admin'").remove();//BackWPup 管理 |
コメント