WordPressで投稿者ごとにIDを取得して分岐させる方法
WordPressを管理する管理者や投稿者が複数いる場合に、各投稿者ページごとに表示する内容を変更したいと思ったので調べながらできましたので備忘録的に残しておきます。
今回の場合、管理者(投稿者)が4名で、それぞれの投稿者ページにプロフィールを表示していますが、プロフィールの一部にそれぞれの写真を3枚ほど表示したいという内容でした。おそらく、各InstagramやXなどを個別に表示したい場合でも同じことが当てはまると思います。
主に、author.phpをカスタマイズする必要がありますので解説しながら手順を確認していきます。
投稿者ごとに違うものを表示する方法
author.phpの表示したい箇所にコードを追記する
追記するphpの全体はこちらになります。
<?php
// 現在のページが投稿者ページ(author.php)かチェックをします
if ( is_author() ) {
// 現在表示されている投稿者のIDを取得する
$author_id = get_queried_object_id(); // または get_the_author_meta('ID'); でもOKです。
// 投稿者IDで条件分岐をする
if ( $author_id == 5 ) {
// IDが5の場合に表示する内容を記述します(例:5の投稿者の写真など)
echo '<p>投稿者ID 5の写真を表示</p>';
// { ここに表示したいHTMLやPHPコードを記述する }
} elseif ( $author_id == 6 ) {
// IDが6の場合に表示する内容を記述する
echo '<p>投稿者ID 6のプロフィールを表示</p>';
} else {
// その他の投稿者ID の場合に表示する内容を記述する
echo '<p>その他の投稿者IDの情報</p>';
}
} else {
// 投稿者ページ(author.php)ではない場合の処理を記述する
echo '<p>このページは投稿者ページ(author.php)ではありません。</p>';
}
?>
追記したコードの内容を確認していきましょう。
表示しているページが投稿者ページかどうかをチェック
表示しているページが投稿者ページかどうかをチェック
is_author()
投稿者ページかどうかを判断する関数です。
get_queried_object_id()
現在表示されているページの投稿者ID取得する関数です。
$author_id = get_queried_object_id();
5行目では、「もし現在のページが投稿者ページであれば、$author_idに投稿者IDを代入する」という意味となります。
該当する投稿者IDの場合に表示する内容を指定する
投稿者IDが「○○」の場合には「△△」を表示するという内容を記述します。
if ( $author_id == 〇〇){ echo ‘ △△ ‘;}
8行目~は「もし、投稿者IDが『5』であれば、『投稿者ID 5の写真を表示する』という指定になります。
if ( $author_id == 5){ echo ‘ 投稿者ID 5の写真を表示 ‘;}
または投稿者IDが□□の場合は★★を表示する
次に、投稿者IDを指定して条件分岐をしていきます。
else if ( $author_id == □□){ echo ‘★★’}
「またはもし、投稿者IDが『6』であれば、『投稿者ID 6のプロフィールを表示』する」という指定になります。
elseif ( $author_id == 6 ) {
echo ‘投稿者ID 6のプロフィールを表示’;
}
このように、投稿者が複数人いる場合には、それぞれ else if{}で記述していき、最後には else{} でその他の場合の指示をして完了です。
ただ・・・

管理者IDや投稿者IDが管理画面に表示されていないんだけど!?
そんなときは、投稿者IDを管理画面に表示するためのプラグインがありますのでご紹介します。
管理画面にIDを表示させるプラグイン
Show IDs by DraftPress
管理画面に「投稿ID」や「投稿者ID」などを表示させるプラグイン「Show IDs by DraftPress」をダウンロードして有効化します。

インストールして有効化します。

プラグインを有効化する前は、上の画像のように管理画面のユーザーページに「IDが表示されていません」でしたが、有効化することで下の画像のように「ID」が表示されるようになります。

こうして、各投稿者のIDを調べて、先程の条件分岐により表示する内容を指定することで、投稿者ページごとに表示する内容を変えることが可能になります。
何度やっても表示されない!をくりかえして、思い通りの表示ができた瞬間思わず「歓喜」しました。調べる前まではわからなかったこと、できなかったことができた時って本当にうれしいですよね。
私と同じように、投稿者ごとに表示する内容を変えたい場合にはぜひ参考にしてみてください。