WordPress でユーザーのアバター画像 の URL のみを取得する方法

ユーザーの画像そのものは get_avatar() で取得することができます。この場合は img 要素に URL がセットされた値が返ってきます。しかし、ユーザーの画像 URL のみを取得する関数を見つけることが出来なかったので、get_avatar から正規表現で抜き出してみます。

ユーザーのアバター URL を取得する

get_avatar() で取得できる img 要素は以下のような形式となってます。

1
<img alt='{$safe_alt}' src='{$out}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />

このように src 属性はシングルコーテーションのみとなっておりますので、以下のように単純なコードで取得することができます。このコードを具体的に利用するには、このコードを functions.php など好きな場所に貼り付けます。

1
2
3
4
5
6
7
8
9
10
11
12
13
function get_avatar_url($id_or_email, $size = null, $default = null, $alt = null)
{
    $image = get_avatar($id_or_email, $size, $default, $alt);
    if(preg_match("/src='(.*?)'/", $image, $match)) {
        if(isset($match[1])) {
            return $match[1];
        } else {
            return false;
        }
    } else {
        return false;
    }
}

その後取得したい場所で以下のように張り付ければOKです。サンプルのため URL をただ echo しています。

1
echo get_avatar_url($post->post_author);

コメント

コメントは受け付けていません。