2020/07/07 20:17
[Wordpress]忘れがちなWordpressの管理者権限による分岐の書き方
WordPressを使っていると、クライアント側で「記事投稿だけやりたい」と言われることがあったります。
その場合に「権限」によって表示の有無を考えたり、管理画面内のカスタムが必要になってきますよね。
そういった場合に備えて忘れがちな「権限一覧」や条件分岐方法等の備忘録です。
権限グループ一覧
まずはWPの権限をおさらいしましょう。
【購読者】
Subscriber
・WordPressにログインできる。
【寄稿者】
Contributor
・レビュー待ちの投稿を作成することができる。
※レビュー待ちになった投稿の公開は編集者以上の権限グループが可能
【投稿者】
Author
・投稿することができる。
※ただし固定ページや他のユーザーが作成した投稿を扱うことはできない
【編集者】
Editor
・投稿や固定ページ、カテゴリーなどを、他の人が作成した投稿も含め、扱うことができる。
※テーマやプラグイン、ユーザー、サイト設定を扱うことはできない
【管理者】
Administrator
・すべての権限を持っている。
出力一覧
各権限別での出力例です。
<!-- ログイン時のみ表示(権限は関係ナシ) -->
<?php if(is_user_logged_in()):?>
【ログイン時のみ表示】
<?php endif;?>
<!-- 購読者のみ表示 -->
<?php if(current_user_can('subscriber')):?>
【購読者のみ表示】
<?php endif;?>
<!-- 寄稿者のみ表示 -->
<?php if(current_user_can('contributor')):?>
【寄稿者のみ表示】
<?php endif;?>
<!-- 投稿者のみ表示 -->
<?php if(current_user_can('author')):?>
【投稿者のみ表示】
<?php endif;?>
<!-- 編集者のみ表示 -->
<?php if(current_user_can('editor')):?>
【編集者のみ表示】
<?php endif;?>
<!-- 管理者のみ表示 -->
<?php if(current_user_can('administrator')):?>
【管理者のみ表示】
<?php endif;?>
権限の操作もできる
サイトによっては権限によって、操作の可能・不可能や課金の有無などが発生してくるかと思います。
そういう時に権限グループや権限の変更などを操作する関数が用意されてます。
add_cap()
・権限グループに権限を追加する
remove_cap()
・権限グループから権限を取り除く
add_role()
・新しい権限グループを追加する
remove_role()
・既存の権限グループを削除する
サイト自体をいじられてしまうような予期せぬ事態にならないように、くれぐれも権限の変更には注意が必要です。
まとめ
以上、Wordpressのユーザー権限の種類や内容はけっこう忘れがちになるので備忘録として残しておきます。
クライアント側で投稿だけいじってもらう等という事はけっこう多いと思うので、いい感じに条件分岐させる方法として活かしていけたらと思います。
ただ、上記でも書いたように権限変更等を実装する際は間違いのないように注意が必要です。
現場から以上です!
700