Custom Post Type UI で追加したカスタム投稿タイプの権限を調整する方法とは?
新規で作ったカスタム投稿タイプの権限を細かく変更する際に困ったのでやり方を備忘録として残しておきます。
利用するプラグインは2つ
Custom Post Type UI
User Role Editor
です。
それぞれの詳しい使い方をイチから解説するととんでもなく長くなるのでまたの機会にするとして、設定に必要な部分だけ取り急ぎ記録しておきますね。
目次
Custom Post Type UI とは
- プラグイン名
- Custom Post Type UI
- サイトリンク
- https://wordpress.org/plugins/custom-post-type-ui/
気軽に
・カスタム投稿(Post type)
・カスタム分類やターム(カスタムタクソノミー Custom Taxonomies , Terms)
を追加・管理できるのがこの Custom Post Type UI
大変便利なプラグインです。
User Role Editor とは
- プラグイン名
- User Role Editor
- サイトリンク
- https://wordpress.org/plugins/user-role-editor/
WordPressにはユーザー毎に権限があり、権限によって操作の可否がなされています。
例えば、
「編集者は固定ページを作れるが、投稿者は固定ページを作れない」
といったものですね。
これらの権限と、操作の可否をコントロールできるのがこのUser Role Editorです。
権限についてはcodexを見てみましょう。
ユーザーの種類と権限
カスタム投稿タイプの権限を操作する
今回は『管理者』と『投稿者』での検証です。
基本的にCustom Post Type UIには権限に関するオプションはありません。
新規でpost_typeを追加すると、投稿者にもカスタム投稿タイプが追加されています。
管理者だけ追加・編集ができるカスタム投稿タイプを作るには
ただ、カスタム投稿を追加する際に、利用タイプを『post』以外にしてしまえば、メニューに表示されなくなります。
(このpostは初期値で入力されています)
この利用タイプが『post』の状態は、操作の可否(capability)も『投稿=post』の物を利用するということのようですね。
例えば、利用タイプを『new』にしてみます。
このままでは、どの権限のユーザーにもメニューは表示されません。
『管理者だけ追加・編集ができるカスタム投稿タイプを作る』には、管理者にだけは『news』のcapabilityを付与する必要があるので、
ここで「User Role Editor」の出番です。
User Role Editorで管理者の権限を操作するには?
デフォルトでは管理者権限は変更(というか閲覧)できない仕様になっています。
設定 > User Role Editor から
『Show Administrator role at User Role Editor』
にチェックする必要があります。
※管理者権限の変更が可能な状態で、設定のリセット等を行うと、特定のプラグインにアクセスできなくなる可能性があります。
こちらの記事も参考にして下さい。
User Role Editor の設定変更でプラグインの管理画面にアクセスできなくなってしまう事案が発生
ユーザー > User Role Editor から
『管理者 (administrator)』が選択できるようになります。
CPT UI の利用タイプを『new』にすると、
User Role Editor の権限にも『new』に関連したcapabilityが追加されます。
Custom Capabilities : の部分ですね。
このcapabilitiesについては、それぞれのチェックを外したり追加したりすると、その働きがよくわかります。
例えば
delete_others_posts ・・・ 他のユーザーのpost(つまり投稿)を消すことができる
upload_files ・・・ ファイルアップロード・メディアライブラリの操作権限
といったものです。
新しく追加された
delete_news
delete_others_news
delete_private_news
delete_published_news
edit_news
edit_others_news
edit_private_news
edit_published_news
publish_news
read_private_news
というのは良く見ると posts が news になっているだけです。
これらのチェックを権限毎に操作することで、ある程度自由に権限を操作できそうですね。
以上、『Custom Post Type UI で追加した投稿タイプの権限をUser Role Editor で変更する』お話でした!
ただ、前述の通り、管理者権限を閲覧・変更可能な状態にしていて、かつ権限の変更・リセット等を行うことで、プラグインによっては管理画面にアクセスできなくなることもあるので注意が必要です。
こちらの記事も参考にして下さい。
User Role Editor の設定変更でプラグインの管理画面にアクセスできなくなってしまう事案が発生