好的,所以我已经在用户编辑配置文件页面中添加了一个自定义字段,他们可以在其中添加链接到所需的图像的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。

许可以下: CC-BY-SA归因
scroll top