オリジナルのユーザー権限グループのユーザーが「作成者」に表示されない場合の対処方法【ワードプレス】
ワードプレスでサイトを制作していると、デフォルトのユーザー権限グループの他にカスタムした権限を与えたオリジナルのユーザーが必要になる事があります。具体的にはadd_roleなどの関数を使い自分で作成したり、ユーザー権限関連のプラグインを使用するわけですが、追加したユーザーが投稿一覧や各記事の編集ページに表示されない事があります。
今回は、このようにカスタマイズして作ったユーザー権限グループに属しているユーザーが「作成者」に表示されず、記事の作成者が変更できない場合の対処方法についてまとめてみたいと思います。
~ 目次 ~
ユーザーレベルが原因の場合が多い
きちんと必要な権限を与えているにも関わらず「作成者」の中に表示されない場合、ユーザーレベルが原因の場合が多いでしょう。
ご存知の方には余計な話ですが、ユーザーレベルは0~10まであり、ワードプレスの古いバージョン(3系あたり)まで使用されていました。しかし既にワードプレスで非推奨となっていますので、気にする必要が無いように思えます。しかし実際は、現在のワードプレスのデフォルトの5つのユーザー権限グループ(管理者・編集者など)にも、しっかり設定されています。しかし、新規ユーザー権限グループを作成しても、ユーザーレベルを設定していない場合やユーザーレベルが0の場合、このグループに属するユーザーは「作成者」の中に表示されません。
つまり、作成したユーザー権限グループのユーザーレベルを1以上にしてあげれば良いわけです。
プラグインは使わずユーザー権限グループを作成した場合
add_roleを使って自分で権限の設定をする場合は、以下のように、capabilitiesの配列の中に、level_0とlevel_1を追記しましょう。これで「作成者」の中に表示され、変更なども可能になります。
1 2 3 4 5 6 7 8 9 10 11 |
add_role( 'owner', 'オーナー', array( 'read' => true, 'edit_posts' => true, 'upload_files' => true, 'level_1' => true, 'level_0' => true, ) ); |
※レベル以外のcapabilityの設定は適当に書いてあります。(念のため。。。)
デフォルトの5つのユーザー権限グループは「購読者」以外すべて最初から1以上になっています。何かの都合で、カスタマイズして作られた既存のオリジナルユーザー権限グループに、add_capを使って権限を追加するという場合もあるかもしれません。この場合も同様に、level_0とlevel_1を追加してやればOKです。
プラグインを使用してユーザー権限グループを作成した場合
user_role_editorなど、ユーザー権限がらみの有名プラグインも多いので、使用して作成する場合も多いでしょう。
この場合は、プラグインの設定でユーザーレベルの変更ができるはずです。レベル1以上に設定しましょう。
それでも表示されない場合
ユーザーレベルの変更をする前に、そのユーザー権限グループとして作成してしまったユーザーはそのままでは更新されないようで、レベルを追記しても反映されません。
こういった場合は、一度別の権限グループに変更してから、元に戻して保存しなおしてみて下さい。
最後に
いかがでしょうか。「作成者」に表示されたでしょうか。
あまり遭遇する事のない、ニッチなテーマになってしまいましたが、忘れてしまうとハマりそうなのでまとめてみました。
もし、この記事の内容を読んでも「作成者」に表示されないという場合は、各種権限の設定自体が上手くできていないのかもしれません。記事の編集に関する権限などを見直してみて下さい。