GET_USER_META短配置文件部分

时间:2011-05-23 作者:xLRDxREVENGEx

好的,我在用户编辑配置文件页面中添加了一个自定义字段,用户可以在其中添加指向所需图像url的链接。我目前正在为贡献者及以上用户使用此功能,但我的网站上还有一个小的个人资料框,可以从gravatar获得用户的头像。我使用了以前的代码,但对其进行了修改,以获得当前登录用户的authorpic或gravatar。请参见下面的代码

$profilepic = get_user_meta(\'author_pic\');
$imgtagbeg = (\'<img style="height:52px; width:52px" src="\');
$imgtagend = (\'"/>\');
    if ($profilepic)
        echo $imgtagbeg,$profilepic,$imgtagend; 
    else
        echo get_avatar( $user_email, \'52\', $default = \'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default\' );
我想做的是,如果当前登录的用户在其个人资料字段中链接了一个头像,则使用该头像而不是gravatar。但是,如果作者确实有一个gravatar,并且在配置文件中将字段留空,则使用该字段或获取默认gravatar

Update:像这样的怎么样

$userpic = \'<img src="link/to/author_pics/$userid.png"\';
    if ($userpic)
        echo $userpic;
    else
        echo get_avatar( $user_email, \'52\', $default = \'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default\' );
不要依赖于用户字段,只需将图像上载到目录并使用那里的userid作为文件名,然后加载它,否则使用gravatar。这样行吗。

UPDATE 2:

$userpiccur = wp_get_current_user();
$userpicloc = \'http://avatars.mydomain.com/\';
$userpictyp = \'.png\';
$userpicurl = $userpicloc . $userpiccur->user_login . $userpictyp;
$header_response = get_headers($userpicurl, 1);
$userpicbeg = \'<img style="height:52px; width:52px" src="http://avatars.mydomain.com/\';
$userpicend = \'.png"/>\';
if ( strpos( $header_response[0], "404" ) !== false )
    echo $userpicbeg,$userpiccur->user_login,$userpicend;
else
    echo get_avatar( $user_email, \'52\', $default = \'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default\' );

3 个回复
最合适的回答,由SO网友:xLRDxREVENGEx 整理而成

好吧,我想怎么做就怎么做。现在我要做的就是弄清楚我是否希望用户能够上传自己的图像。

<?
$userpiccur = wp_get_current_user();
$userpicloc = \'http://avatars.mydomain.com/\';
$userpictyp = \'.png\';
$userpicurl = $userpicloc.$userpiccur->user_login.$userpictyp;
$userpicbeg = \'<img class="avatar avatar-52 photo" style="height:52px; width:52px" src="\';
$userpicend = \'"/>\';
if (@fopen($userpicurl, "r"))
    echo  $userpicbeg,$userpicurl,$userpicend;
else
    echo get_avatar( $user_email, \'52\', $default = \'http://www.gravatar.com/avatar.php?gravatar_id=$md5&size=80&default=$default\' );
?>

SO网友:fuxia

从核心:

function get_user_meta($user_id, $key, $single = false) {
    return get_metadata(\'user\', $user_id, $key, $single);
}
传递用户id作为第一个参数\'author_pic\' 作为第二个和TRUE 作为第三个(返回字符串值)。

SO网友:Bainternet

问题编辑部分的代码应该可以使用,第一部分也可以,但需要将用户ID添加到get_user_meta() 函数,因此请使用第一个代码,但将第一行更改为:

$profilepic = get_user_meta($user_id,\'author_pic\',true);
并确保$user\\u id保留用户的实际id。

结束

相关推荐

在users.php中使用Manage_User_Columns显示cimy用户字段

我正在尝试向我的主题函数添加代码。php在仪表板用户中显示使用Cimy用户额外字段插件创建的字段。php。我知道我需要使用manage\\u users\\u列,但除此之外,我陷入了困境。有谁对这个插件足够熟悉,可以帮助我获得要显示的正确字段?