0

wordpress で現在ログインしているユーザーのアバターの URI/URL を取得する方法があるかどうか疑問に思っていましたか? これは、get_avatar を使用して現在のユーザーのアバターを挿入するためのショートコードを生成する方法として見つかりました (テーマ functions.php に配置される php の下):

<?php

function logged_in_user_avatar_shortcode() {
if ( is_user_logged_in() ) {
global $current_user;
get_currentuserinfo();
return get_avatar( $current_user->ID );
}
}
add_shortcode('logged-in-user-avatar', 'logged_in_user_avatar_shortcode');

?>

ただし、これは属性 (img src、class、width、height、alt) を含む画像全体を返します。テンプレートで画像のすべての属性を既に設定しているため、URL だけを返したいと思います。

このようなものを作ろうとしています:

<img src="[shortcode-for-avatar-url]" class="myclass" etc >

これを行う方法を知っている人はいますか?

よろしくお願いします

4

2 に答える 2

1

preg_matchURL を見つけるために使用できます。

function logged_in_user_avatar_shortcode()
{
    if ( is_user_logged_in() )
    {
        global $current_user;
        $avatar = get_avatar( $current_user->ID );
        preg_match("/src=(['\"])(.*?)\1/", $avatar, $match);
        return $match[2];
    }
}
add_shortcode('logged-in-user-avatar', 'logged_in_user_avatar_shortcode');
于 2014-01-23T14:37:59.197 に答える
0

I wrote a PHP function to get a users gravatar in recent WordPress installations, if WordPress is less than version 2.5 my function used a different way of retrieving a users gravatar. A slightly modified version that simply outputs a users gravatar URI can be found below.

// Fallback for WP < 2.5
global $post;

$gravatar_post_id = get_queried_object_id();
$gravatar_author_id = get_post_field('post_author', $gravatar_post_id) || $post->post_author;//get_the_author_meta('ID');
$gravatar_email = get_the_author_meta('user_email', $gravatar_author_id);

$gravatar_hash = md5(strtolower(trim($gravatar_email)));
$gravatar_size = 68;
$gravatar_default = urlencode('mm');
$gravatar_rating = 'PG';
$gravatar_uri = 'http://www.gravatar.com/avatar/'.$gravatar_hash.'.jpg?s='.$gravatar_size.'&amp;d='.$gravatar_default.'&amp;r='.$gravatar_rating.'';

echo $gravatar_uri; // URI of GRAVATAR
于 2014-01-23T15:40:45.913 に答える