WordPressには
- 購読者
- 寄稿者
- 投稿者
- エディター
- 管理者
これは記事を登録できる人、記事は登録できず閲覧だけできる人…などの設定がされています。
ただ、運用での条件に合った権限がないという場合もあります。
そんな時は『User Role Editor』という自分の好きなように権限を割り振ることのできるプラグインを使います。
目次
まずはプラグインをインストール
まずはプラグインのインストール画面から『User Role Editor』を検索して、インストールと有効化をしましょう。(アイコン画像がちょっと怪しい感じですが、大丈夫です…)
一般設定画面
設定>『User Role Editor』で開くことのできる画面は一般設定画面になります。こちらはプラグイン自体にかかわる設定を行うことができます。
こちらは基本的には書いてある通りの設定になりますので、今回は画面があるよということだけご紹介します。
自分が作業したときはとりあえずはデフォルトで問題ありませんでした。
権限設定画面
権限の設定画面はユーザー>『User Role Editor』から開きます。『User Role Editor』をクリックすると、権限の設定ページが開きます。
一見なかなかとっつきにくそうな画面ですが、少しずつ見ていきましょう。
権限グループを作ろう
まずは権限グループを作りましょう。いわゆるデフォルトである『管理者』とか『購読者』のようなものをオリジナルで作っていくイメージです。そして作ったグループの箱に対して、権限の設定をしていきます。
右側にある『権限グループを追加』をクリックします。
すると権限グループの作成画面が開きます。
軽く説明をすると下記のような感じです。
権限グループ名(ID) | IDとなるグループ名を入力します。半角英数字で入力してください。 | |
---|---|---|
表示する権限名 | 権限名を入力してください。日本語など自分がわかりやすいものでOKです。 | |
コピー元 | 既存の権限でコピーしたいものを選択します。特にない場合は「なし」のままで大丈夫です。 |
追加したグループに対して、権限を設定する
無事グループを設定して元の画面に戻ったら、今度は権限の設定をしていきます。先ほど追加したグループを選択してください。
グループを選択したら、その下の部分で権限をポチポチ登録していきます。
ちなみに『各権限を概説で表示する』にチェックを入れると日本語で分かりやすく表示してくれるので、必要な方はチェックを入れて作業することをおすすめします。
あとはグループの権限に、必要な項目のチェックを入れていきます。
チェックを入れ終わったら画面右側にある『更新』をクリックしてください。
『権限の更新を確認してください』と出てくるので『はい』を押すと保存・更新が完了します。
作成した権限グループをユーザーに付与する
それでは作成した作成した権限グループを、ユーザーに付与しましょう。ユーザー一覧などから、ユーザーの管理画面を開いてください。
画面内に『権限グループ』の設定があるのでクリックします。
クリックすると、先ほどの権限が表示されますのでそちらを選択したのち、『更新』します。
あとは該当のユーザーアカウントでログインをして、設定した権限のみが付与されているのを確認出来たらOKです(今回の場合は記事を新規登録できるが削除できない、など)。
カスタム投稿やカスタムタクソノミーへの対応
権限を付与したい!となるとカスタム投稿・カスタムタクソノミーなどについても付与したい場合場合も多いと思います。ただ、いつも通りのカスタム投稿などの記述のままだと『デフォルトの投稿』に入れたチェックが反映されるという現象が起きてしまいます。
これはfunctionsなどのカスタム投稿の記述に少し手を加えると解決できます。
※必ずfunctions.phpのバックアップを取りつつ作業をしてください。
デフォルトのカスタム投稿記述
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
add_action( 'init', 'create_post_type' ); function create_post_type() { // コラム register_post_type( 'column', //カスタム投稿タイプ名 array( 'label' => 'コラム', 'public' => true, 'has_archive' => true, 'menu_position' => 5, 'show_in_rest' => true, ) ); // コラムのカテゴリー register_taxonomy( 'column-cat', //タクソノミー名 'column', //付与するカスタム投稿タイプ名 array( 'label' => 'コラムカテゴリー', 'hierarchical' => true, 'public' => true, 'show_in_rest' => true, ) ); } |
カスタム投稿を使うにはfunctionsに上記脳ような感じで記述をしていることが多いかと思います。
ここから記述に手を加えていきます。
User Role Editorに対応したカスタム投稿・カスタムタクソノミーの記述
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
add_action( 'init', 'create_post_type' ); function create_post_type() { // コラム register_post_type( 'column', //カスタム投稿タイプ名 array( 'label' => 'コラム', 'public' => true, 'has_archive' => true, 'menu_position' => 5, 'show_in_rest' => true, 'capability_type' => array( 'column', 'columns' ), 'map_meta_cap' => true, ) ); // コラムのカテゴリー register_taxonomy( 'column-cat', //タクソノミー名 'column', //付与するカスタム投稿タイプ名 array( 'label' => 'コラムカテゴリー', 'hierarchical' => true, 'public' => true, 'show_in_rest' => true, 'capabilities' => array( 'manage_terms' => 'manage_columns_terms', 'edit_terms' => 'edit_columns_terms', 'delete_terms' => 'delete_columns_terms', 'assign_terms' => 'assign_columns_terms', ) ) ); } |
はい、User Role Editorに対応した記述をしてみました。
以下、記述について詳しく書いていきます。
カスタム投稿について
まずカスタム投稿についてはarrayの中に
1 2 |
'capability_type' => array( 'カスタム投稿名', 'カスタム投稿名+s' ), 'map_meta_cap' => true |
という記述を加えます。
capability_typeを使うと、オリジナルの権限を設定することができます。
これで編集、削除などデフォルト投稿にあったものと同じ設定ができます。
上記に書いたように『カスタム投稿名』と『カスタム投稿名+s』の形で記述をしてください。
そしてmap_meta_capをtrueにすることで、上記の設定を動作させる、ということになります。
これでカスタム投稿についての権限の付与ができました。
カスタムタクソノミーについて
次にカスタムタクソノミーについてですが、こちらはarrayの中に
1 2 3 4 5 6 |
'capabilities' => array( 'manage_terms' => 'manage_カスタム投稿名+s_terms', 'edit_terms' => 'edit_カスタム投稿名+s_terms', 'delete_terms' => 'delete_カスタム投稿名+s_terms', 'assign_terms' => 'assign_カスタム投稿名+s_terms', ) |
と、上記のように権限設定をします。
こちらも上記『カスタム投稿名+s』の部分を該当するものに置き換えてください。
ざっくり権限を説明すると
manage_terms | 管理画面に表示する |
---|---|
edit_terms | タームを編集をする |
delete_terms | タームを削除をする |
assign_terms | タームを割り当てる |
こんな感じです。
これで無事に該当のカスタム投稿やカスタムタクソノミーにだけ権限を与えることができるようになりました!
—
最初はややこしく感じるかもしれないですが、一つ一つ設定していけば大丈夫です!
権限設定に困ったときはぜひ使ってみてください。