[wp]特定のカスタム投稿だけ操作できるアカウントの作成

「CPT UI」と「User Role Editor」でやっていく方法。

はじめに

最低限はできたんだけど、できてない部分がある。調べてもできてない部分を無視した記事がゴロゴロしてたんで、そういうものなのかもしれない。だけど、痒い所が残ったことには間違いない。

どういうことか

wpでWEBサイトを構築した。カスタム投稿を複数設置して色んなコンテンツを作った。記事を投稿するにあたり、アカウントを用意することになった。用意するアカウントは特定のカスタム投稿だけを操作できるようにしたい。他のところをいじって台無しにするリスクを回避したい。そんな感じ。

環境

「CPT UI」でカスタム投稿を作成。

Custom Post Type UI
Admin UI for creating custom content types like post types and taxonomies

「User Role Editor」で特定機能に制限したアカウントを作成。

User Role Editor
User Role Editor WordPress プラグインはユーザーの種類と権限を簡単に変更できます。WordPress ユーザーの種類と権限の 編集/追加/削除。

やっていく

ぶっちゃけ他所の記事を読んだほうが早い。

【WordPress】特定の権限がある投稿者などが、特定のカスタム投稿のみの編集しかできないよう権限を付与する方法
たとえば、企業のサイトであるカスタム投稿「お知らせ」などの記事のみを編集できる権限をもった編集者を作りたい場合などは、単純に『User Role Editor』というプラグインだけではできないの『Custom Post Type UI』の設
CPT UIの「権限タイプ」が何なのかUser Role Editorを使うと分かる - ゆうきのせかい
Custom Post Type UIの「権限タイプ」とは何なのか?User Role Editorを使ったら分かりました。

設定時のポイント

標準では投稿とカスタム投稿は同じものとして扱われるので、カスタム投稿を切り分ける必要がある。そのためにはCPT UIの投稿設定をいじる必要がある。ということで、上記2つ目の記事にある通り、「権限タイプ」を変更する。

初期状態は「post」

ここが「post」だと投稿と同じ扱いになる、ということ。「権限タイプ」を変更することで影響するのはアカウント周りだけなので、テーマの修正は不要

アカウント周りの影響について、権限タイプを新設すると新しい設定項目が作成される。例えば、権限タイプ「blog」を作ると「○○_blogs」みたいな感じで色々増える。

「_posts」だけだったのが「_blogs」が増えてる

切り分けた時点で管理者以外は操作ができない

「○○_blogs」だけにチェックを入れることで機能制限されたアカウントを作れるんだけど、カスタム投稿を切り分けると各権限のチェックが外れた状態になるので、各権限にチェックを入れる必要がある。チェックを入れないと今まで投稿できていたのに投稿できない、メニューからも項目が消えてどうなってんのってことになる。非常にめんどい。管理者権限は例外

タクソノミーが使えない

最初に触れた痒いところ。

権限として、タクソノミーはカスタム投稿に紐付いてない。紐付いていないので、タームを新たに作ることも、カスタム投稿にタームを設定することもできない。調べてみたら「投稿」にある「manage_categories」に紐付いていることがわかった。ここにチェックを入れるとタームを設定できるようになる。

だけど、チェック元が「投稿」なのでメニューに「投稿」とサブメニュー「カテゴリー」「タグ」が表示される。操作もできる。非常に厄介。カスタム投稿みたいにタクソノミーも切り分けられたら良いのに。ここが詰んだポイント。

一部のプラグインが使えない

投稿周りに関係するプラグインが使えない場合がある。要するにUser Role Editorでチェックを入れた項目だけが使用できるってことになるんで、個別のチェック項目がないものは使用できない。使おうとすると他のものも表示しちゃって不都合になる。あけっぴろげにしてしまうか使えなくなるかという極端な二択になる。チェック項目は無いけど普通に使えるものもある

なんとも中途半端な感じで、例えば「LIQUID SPEECH BALLOON」というものがある。

LIQUID SPEECH BALLOON (吹き出し)
会話形式の吹き出しデザインを Gutenberg ビジュアルエディターで作成できます。

LIGとかでよく見る吹き出しのフォーマット。

これは設定画面で吹き出しの画像とか名称を用意して、投稿画面で呼び出して使用するもの。機能制限をすると吹き出しの作成・変更はできないけど投稿画面で使用することはできるという挙動になる。

そんな感じで、作り込めば作り込むほど「これはできるけどこれはできない」が出てきて非常にめんどいことになる。

個別の設定ができてしまう

権限を作成して機能を設定する、っていうのがセオリーなんだけど、このプラグインはアカウント別に機能を指定することができる。所属する権限グループの有効化された項目は固定で、それ以外の項目にチェックを入れることができる。便利といえば便利だけど、単純に設定箇所が2つあるのでちゃんと管理しないと面倒なことが起きる可能性があるので注意。

まとめ

満足のいく機能とはいい難いんだけど、プラグインの仕様というかWP本体の仕様って感じがして仕方ない気持ちがある。うまいこと折り合いをつけて構築しなきゃいけないんで、もし提案する・導入することになるなら、こんな感じのことができますよ、やってみないとわかんない部分がありますよ、みたいな感じで、決め打ちせずにすり合わせをした方がいい。

画像の添付を許可(追記:20220422)

うっかりしてた。上記内容だと画像が登録できない。

画像が使えるようにするためには「メディア」を開放する必要がある。そのためには「upload_files」にチェックを入れる。

【WordPress】 寄稿者でも画像・メディアをアップロードできる方法(User Role Editor)
ワードプレスでメンバー追加する場合、そのメンバーには記事作成はしてもらうけど、実際の投稿はレビューを行ってから自分でするぜ!と、そのメンバーの権限を「寄稿者」として追加する場合があります。 が、ここで問題発生! 権限が「寄稿者」の場合、ワー...

コメント

タイトルとURLをコピーしました