Custom Post Type UI で追加した投稿タイプの権限をUser Role Editor で変更したお話

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は初期値で入力されています)

CPT-UI-add-capabilities01

この利用タイプが『post』の状態は、操作の可否(capability)も『投稿=post』の物を利用するということのようですね。

例えば、利用タイプを『new』にしてみます。

CPT-UI-add-capabilities02

このままでは、どの権限のユーザーにもメニューは表示されません。

『管理者だけ追加・編集ができるカスタム投稿タイプを作る』には、管理者にだけは『news』のcapabilityを付与する必要があるので、
ここで「User Role Editor」の出番です。

User Role Editorで管理者の権限を操作するには?

デフォルトでは管理者権限は変更(というか閲覧)できない仕様になっています。

設定 > User Role Editor から
『Show Administrator role at User Role Editor』
にチェックする必要があります。
※管理者権限の変更が可能な状態で、設定のリセット等を行うと、特定のプラグインにアクセスできなくなる可能性があります。
こちらの記事も参考にして下さい。
User Role Editor の設定変更でプラグインの管理画面にアクセスできなくなってしまう事案が発生

CPT-UI-add-capabilities05

ユーザー > User Role Editor から
UserRoleEditor01_15
『管理者 (administrator)』が選択できるようになります。

CPT-UI-add-capabilities06

CPT UI の利用タイプを『new』にすると、

CPT-UI-add-capabilities02

User Role Editor の権限にも『new』に関連したcapabilityが追加されます。

CPT-UI-add-capabilities03

Custom Capabilities : の部分ですね。

CPT-UI-add-capabilities04

この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 の設定変更でプラグインの管理画面にアクセスできなくなってしまう事案が発生

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA