株式会社リバース(Rivers inc.)|山口県山口市

ブログ

Gravatarに登録したユーザーアイコンをWordPressテーマに表示する

  • WEB
リバース
画像:Gravatarに登録したユーザーアイコンをWordPressテーマに表示する

こんにちは、私です。Webサイトをリニューアルして約2週間が経ちましたが、掲載した様々なブログ記事はご覧いただけましたでしょうか。

今回は、前回の私の記事(WordPressのユーザーアイコンとしてGravatarを利用する)で紹介した「Gravatar」に関連するお話第二弾です。「Gravatar」に登録したアイコンをWordPressテーマに表示してみましょう。

早速実装します

今回、Wordpressテーマに書き込んだPHPコードは以下の通りです。リバースのテーマでは、sidebar.phpに書きました!
コピペするだけでリバースのブログのサイドバーと同じようなユーザー一覧機能が実装できます!

<?php $users = get_users( array('orderby'=>none,'order'=>ASC) ); ?>
<?php foreach($users as $user) {
$uid = $user->ID; ?>
			<dl id="<?php echo $user->user_login ; ?>">
				<dt><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo get_avatar( $uid  ); ?></a></dt>
				<dd><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->display_name ; ?></a></dd>
			</dl>
<?php } ?>

特別なことは何もしていないのですが、私のように何もわからずWordPressのテーマを構築し始めた誰かのために、そして何よりも私自身の備忘録の為に、このコードに1記事費やすことをお許しください。

1行目 ユーザーリストを取得、並び順を指定

$users = get_users( array('orderby'=>none,'order'=>ASC) );

まずは、ユーザーリスト全体に関する設定を記述します。

$users = get_usersでユーザーリストを取得
‘orderby’=>none,’order’=>ASCでリストの並び順を指定しています。

この設定だと、ユーザーIDのアルファベット順でリストが表示されます。

2行目 ループを開始

foreach($users as $user) {

ループ開始の指示を出しています。

ここから、一人ひとりのユーザーに関する記述の開始です。

3行目 取得したユーザーのIDを読み込む

$uid = $user->ID;

ループで取得したユーザーのIDを読み込みます。

「$uid」という箱に「$user->ID;」を入れるというイメージです。今後「$uid」を指定すると、「$user->ID;」の内容が出力されるようになっています。

4〜7行目 出力部分

<dl id="<?php echo $user->user_login ; ?>">
<dt><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo get_avatar( $uid  ); ?></a></dt>
<dd><a href="<?php echo get_bloginfo("url") . '/?author=' . $uid ?>"><?php echo $user->display_name ; ?></a></dd>
</dl>

実際にHTMLとして吐き出される出力部分です。
$uidで3行目で読み込まれたユーザーIDの吐き出しを行っています。

<?php echo get_avatar( $uid ); ?>でimgタグを、<?php echo $user->display_name ; ?>でユーザー名を吐き出しています。

8行目 終了

<?php } ?>

もちろん、開始したループを終了させるのを忘れてはいけません。
私も初めてコードを書いたときは終了タグを忘れて、エラーを出しまくっていました。

基本的なことですが、だからこそきちんと確認しましょう。

いかがでしたか?

Gravatarでのアイコンの登録後は思ったより簡単にユーザ情報の取得・出力ができることがお分かりいただけたかと思います。

また、Gravatarはデフォルトでアイコンにオンマウスするとユーザーのプロフィールが表示されるようにリバースのサイトでは以下のCSSを使用して非表示にしています。

.grav-clone,.grav-inner,.grav-tag{display:none;}

ここもPHPで制御したいな〜と思っていたのですが、やはり難しい!
まだまだ修行が足りませんね。

PHPで制御する良い方法を見つけたら、またGravatarのアイコンに関する記事を書こうと思います。
皆さんも良い方法を見つけたら教えてくださいね😉

ご依頼・ご相談はこちら

お客様にヒアリングさせていただき、ご依頼内容のボリュームや必要な機能をすり合わせ、
企画・構成と共に御見積もりをスケジュールをご提案いたします。

お問い合わせ

人気の記事

スタッフ