ユーザーの画像そのものは 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); |
コメント