get_user_meta简介部分
-
22-10-2019 - |
题
好的,所以我已经在用户编辑配置文件页面中添加了一个自定义字段,他们可以在其中添加链接到所需的图像的URL。我目前正在为贡献者及以上使用它,但是我的网站上也有一个小的小型档案盒,该框从Gravatar那里获取Avatar。我以前使用过这些代码,但将其更改为以获取用户授权或获得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
更新:那这样的事情
$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' );
而不是依靠用户字段仅将图像上传到目录中,然后将其使用用作文件名,然后将其加载到其他情况下,请使用Gravatar。那会工作吗?
更新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
好的,所以我像我想要的那样工作。现在,我要做的就是弄清楚我是否希望用户能够上传自己的图像。
<?
$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' );
?>
其他提示
从核心:
function get_user_meta($user_id, $key, $single = false) {
return get_metadata('user', $user_id, $key, $single);
}
将用户ID作为第一个参数,键 'author_pic'
第二, TRUE
作为第三个(获得字符串值)。
问题的编辑部分中的代码应起作用,也应该是您的第一部分,但是您需要将用户ID添加到 get_user_meta() 函数因此使用您的第一个代码,但将第一行更改为:
$profilepic = get_user_meta($user_id,'author_pic',true);
并确保$ user_id保留用户的实际ID。