get_avatar()

get_avatar()
目次

get_avatar()とは?

get_avatar() は、ユーザーのアバター画像(プロフィール画像)を取得するためのWordPress組み込み関数です。
例えば、コメント欄や投稿者情報の横にアイコンを表示したいときに利用します。

WordPressでは「Gravatar(グラバター)」という外部サービスを利用しており、ユーザーのメールアドレスに紐づく画像が自動的に取得されます。Gravatarに登録していない場合は、デフォルトの画像が表示されます。

get_avatar()画像タグ (<img>) を文字列で返す関数なので、そのまま echo してHTMLに出力します。

get_avatar()の基本的な使い方

書式

get_avatar( $id_or_email, $size, $default, $alt, $args );

引数は以下のとおりです。

引数説明
$id_or_emailユーザーID、ユーザーオブジェクト、コメントオブジェクト、またはメールアドレス。これを基にアバターを特定します。
$size画像サイズ(幅・高さ)。ピクセル単位で整数を指定。デフォルトは96。
$defaultGravatarに登録がない場合に表示するデフォルト画像。URLまたは特定の文字列('mystery'など)。
$alt画像のalt属性(代替テキスト)。
$args5.2以降で利用可能な追加オプションの配列。

get_avatar()の使用例

ユーザーIDから取得する

echo get_avatar(1);

ユーザーID=1のアバターを表示。

コメントオブジェクトから取得する

global $comment;
echo get_avatar($comment, 64);

コメント投稿者のアバターを64ピクセルで表示。

メールアドレスから取得する

echo get_avatar('user@example.com', 48, '', 'ユーザーのアバター');

指定メールアドレスのアバターを48ピクセル、alt属性を指定して表示。

$argsの活用

WordPress5.2以降、より柔軟に表示を制御できるよう $args 配列が追加されました。

よく使うパラメータ:

パラメータ説明
class<img> タグに付与するCSSクラス。デフォルトは avatar avatar-{size}
force_defaulttrueにすると常にデフォルト画像を表示。
rating画像のレーティング(G, PG, R, X)。
schemeURLスキーム(http、https)。
extra_attr<img> タグに任意の属性を付与する文字列。

$argsの例

echo get_avatar(
  'user@example.com',
  80,
  'mystery',
  'アバター画像',
  [
    'class' => 'custom-avatar',
    'extra_attr' => 'loading="lazy"',
  ]
);

この場合、80ピクセル、mystery デフォルト画像、クラスにcustom-avatarloading="lazy"属性が付いたimgタグが出力されます。

Gravatarとは?

Gravatar(Globally Recognized Avatar)は、WordPress.comが提供するサービスで、メールアドレスに画像を紐づけ、対応サイトで自動表示する仕組みです。

ユーザーがGravatarに登録していれば、WordPress側では特別な設定をしなくても自動的に画像が取得されます。

デフォルト画像について

$defaultに指定できる文字列には以下の種類があります。

内容
mystery または mmシルエットの人型画像(ミステリーマン)。
blank空白画像。
gravatar_defaultGravatar公式デフォルト。
identiconユニークな幾何学模様。
wavatarカートゥーン風の顔アイコン。
monsteridモンスターイラスト。
retro8ビット風ピクセルアバター。

URLを指定すると、独自画像も利用できます。

フィルター

get_avatar()は内部で以下のフィルターを呼び出します。

get_avatar

返り値(imgタグ)を加工するためのフィルター。

add_filter('get_avatar', 'my_custom_avatar', 10, 6);
function my_custom_avatar($avatar, $id_or_email, $size, $default, $alt, $args) {
    // カスタマイズ例
    $avatar = str_replace('class="', 'class="my-avatar-class ', $avatar);
    return $avatar;
}

pre_get_avatar

5.2以降に追加されたフィルターで、get_avatar()自体を置き換えられます

add_filter('pre_get_avatar', 'replace_avatar', 10, 2);
function replace_avatar($avatar, $id_or_email) {
    // 完全にカスタムHTMLを返す
    return '<img src="https://example.com/custom-avatar.png" alt="カスタム">';
}

このフィルターが値を返すと、WordPressの標準処理は実行されません。

カスタム実装例

例えば、ユーザーがプロフィール画像をアップロードしている場合はそれを表示し、なければGravatarを利用する処理はこう書けます。

$user_id = get_current_user_id();
$custom_avatar_url = get_user_meta($user_id, 'custom_avatar_url', true);

if ($custom_avatar_url) {
    echo '<img src="' . esc_url($custom_avatar_url) . '" alt="ユーザーアバター" class="custom-avatar">';
} else {
    echo get_avatar($user_id, 96);
}

このようにGravatarに頼らない独自アバターも容易に組み込めます。

get_avatar()の注意点

  • **GDPR(欧州個人情報保護規制)**に配慮が必要。
    Gravatarはメールアドレスをハッシュ化して送信するため、場合によってはプライバシーポリシーで明示する必要があります。
  • デフォルト画像を「blank」にすると意図しない表示崩れが起きる場合があるので確認しましょう。
  • テーマによってはget_avatar()の出力に追加のスタイルが適用されます。classオプションで制御するとよいでしょう。

get_avatar()のまとめ

get_avatar()はWordPressのユーザー体験を向上させる重要な関数です。
ポイントをおさらいします。

  • メールアドレス、ID、コメントから簡単にアバターを取得
  • $size, $default, $alt, $args で細かく制御
  • pre_get_avatar, get_avatarフィルターで高度にカスタマイズ可能
  • 独自アバターと併用する拡張性

WordPressテーマやプラグインで「コメント」「投稿者情報」「メンバー一覧」をつくる際には、ぜひ活用してください。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次