こんにちは。システム開発事業部の千代田です。
今回は、WordPressでユーザー権限ごとに固定ページを編集/削除できる権限を細かく設定した時に実施した手順を残しておきたいと思います。
はじめに
本ブログでは、WordPressで固定ページの編集/削除権限を細かく設定する方法について解説していきます。
なお、実装にはUser Role Editorというプラグインを使用しています。
実現したいもの
本ブログでは、以下の3つの権限グループが存在する場合を想定しており、それぞれ権限の範囲が存在します。
- 管理者グループ(ユーザー:A、B)
- デフォルトでwordpressに存在する管理者 を付与
- MASTERグループ(ユーザー:C、D)
- デフォルトでwordpressに存在する特権管理者 を付与
- TESTグループ(ユーザー:X、Y)
- 新たに作成するTEST権限グループ を付与
固定ページに対する操作権限は、所属する権限グループに応じて次のように制限されます:
- 管理者グループのユーザーは、TESTグループのユーザーが作成した固定ページを操作できません。
- TESTグループのユーザーは、自グループ(TESTグループ)のユーザーが作成した固定ページのみ操作可能です。
- 管理者グループやMASTERグループのユーザーが作成した固定ページは操作できません。
- MASTERグループのユーザーは、すべての固定ページを操作できます。
開発環境
- WordPress
- 6.6.2(6.7.2も確認済)
- User Role Editor
- 4.64.4
- PHP
- 8.0.22
手順
WordPress管理画面側での設定
- User Role Editorで権限グループを作成する
- メニューからUser Role Editorページに移動します
- ページの右端にあるメニューからAdd Roleをクリックします
- 表示されたダイアログに従い、Role nameとDisplay Role Nameを入力します
- Add Roleを押すと権限グループが作成されます
- 必要な権限を設定する
- [delete | edit]_others_pages
- [delete | edit | publish]_pages
- [delete | edit | read]_private_pages
- [delete | edit]_published_pages
ここでは、TEST権限グループに必要な権限を設定します
今回は全ての権限が必要になるためPages を開き、全ての権限にチェックを入れて更新します
それぞれの権限の説明は以下のとおりです。
- ユーザーに作成した権限グループを付与する
新規ユーザー追加の画面にて、ユーザーXとYに作成した権限グループ(TEST)を付与して追加します。
ここまででUser Role Editorの設定は完了です
続いて、プログラム側の設定を行います
プログラムでの設定
ここでは、WordPress管理画面で行ったUser Role Editorの設定だけでは不十分な権限の調整を行います。
- function.phpを見つける
- WordPressで有効になっているテーマ名でディレクトリがあるため、その中からfunction.php ファイルを探します
- プログラムの追加
- 固定ページの編集/削除権限を制御する機能
- 固定ページ一覧画面でのアクション(編集/削除など)を制御する機能
以上でプログラムでの設定も完了し、権限ごとに操作できる内容を調整することができました。
動作確認
ここでは、これまで設定した内容で権限が適切に反映されているかを確認します。
- 管理者グループでログインした場合
ユーザー名:Bでログインしているので、ユーザー名:Xが投稿した固定ページへは入れない
- MASTERグループでログインした場合
権限グループ問わず、すべてのユーザーが作成した固定ページの投稿が編集できる
- TESTグループでログインした場合
ユーザー名:Xでログインしているので、同じ権限グループ(TEST)のユーザー(XとY)が投稿した固定ページしか編集できない
おわりに
今回は、WordPressのプラグインであるUser Role Editor を使用した、ユーザーごとの権限設定について紹介しました。
1つのサイトを複数人で編集するときにお役に立つかと思いますので、参考にしていただければ幸いです。