【WordPress】ユーザー権限グループで条件分岐させる方法【コピペOK】
ユーザー権限ごとの分岐ってどう書くんだっけ、久しぶりにWordPress触ったらほとんど忘れてて草。地味によく使うから備忘録として残しておいた方がいいな、コピペですぐ使えるようにコードも残しておこう。
権限グループについて【おさらい】
権限グループについて簡単におさらいしておきます。
権限グループ一覧表
権限グループ名 | スラッグ | 役割 |
---|---|---|
管理者 | administrator | WordPressの全ての機能が使える |
編集者 | editor | コンテンツに関する全ての機能が使える |
投稿者 | author | 記事の投稿や編集、公開など最低限の機能が使える |
寄稿者 | contributor | 記事の下書きや編集など一部の機能が使える |
購読者 | subscriber | 閲覧のみ、編集機能は一切使えない |
処理やコード内で使用するのは「スラッグ」の部分になります。
権限グループによって条件分岐させる方法【処理】
権限グループによって条件分岐させる際は下記のコードを使用しましょう。
// 権限グループのスラッグによって分岐処理
if (current_user_can('ここにスラッグ')) {
//ここに処理を記述
}
2行目のif文
「ここにスラッグ」に任意の権限グループのスラッグ(権限グループについて【おさらい】を参照)を記述し、3行目の「ここに処理を記述」に行いたい処理を記述すればOKです。
めんどくさいという方は後述している権限グループ別のコピペ用コードをご利用ください。
管理者で分岐させる場合
// 権限グループ【管理者】であれば
if (current_user_can('administrator')) {
//ここに処理を記述
}
編集者で分岐させる場合
// 権限グループ【編集者】であれば
if (current_user_can('editor')) {
//ここに処理を記述
}
投稿者で分岐させる場合
// 権限グループ【投稿者】であれば
if (current_user_can('author')) {
//ここに処理を記述
}
寄稿者で分岐させる場合
// 権限グループ【寄稿者】であれば
if (current_user_can('contributor')) {
//ここに処理を記述
}
購読者で分岐させる場合
// 権限グループ【購読者】であれば
if (current_user_can('subscriber')) {
//ここに処理を記述
}
使用例の紹介【使い方がイマイチ分からない人へ】
なんて疑問を持つ方もいると思うので、使用例を紹介しておきます。
ログイン時に条件分岐させる【よく使う】
functions.php
内の処理を先ほど解説した処理で囲めば、特定の権限グループのみに適応させる事が可能です。
アクションフックを囲んでもいいですし、関数内の処理自体を囲んでも同じ結果を返します。
(小)テーマ/functions.php
// 処理を囲むパターン
function my_admin_head(){
if (current_user_can('author')) {
echo '<style type="text/css">#contextual-help-link-wrap{display:none;}</style>';
}
}
add_action('admin_head', 'my_admin_head');
// アクションフックを囲むパターン
function my_admin_head(){
echo '<style type="text/css">#contextual-help-link-wrap{display:none;}</style>';
}
if (current_user_can('author')) {
add_action('admin_head', 'my_admin_head');
}
会員であれば見れるようにする【会員サイトあるある】
functions.php以外でも条件分岐は使えます、例えば会員サイトを作ったとしてログインした会員(購読者)にだけ表示させたいものがある時は下記のようにすればOK。
条件分岐させたいページ(固定ページなど)
// 権限グループ【購読者】にしか表示させない
if (current_user_can('subscriber')) {
echo '<p>購読者であればこのテキストが表示されます</p>'
}
ログインしているかどうかならis_user_logged_in()
を使えばいいという話は置いておいて、ビュー側のファイルでも使えるんですよということだけ理解してもらえればOKです。
終わりに
権限グループ事の分岐処理はWordPressをカスタマイズする際は本当によく使う処理なので、これからWordPressを勉強する方は覚えておいて損なしかと思います。
クライアント側のアカウントを権限グループで管理する時とかは便利なんですよね、「投稿者」をクライアントのアカウント専用権限とかにしたり。そうすれば制限をかける処理(非表示)を権限グループで条件分岐させるだけで余計なものをクライアントに触らせない・見せないことが可能になるので。
以上になります。
飲食→派遣→IT系ベンチャーに転職。
本業をベーシックインカムとし、やりたい事に挑戦するWebエンジニア。