好的,我在用户编辑配置文件页面中添加了一个自定义字段,用户可以在其中添加指向所需图像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\' );
最合适的回答,由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\' );
?>