在使用Get_avtal时获取头像url而不是html img标记?

时间:2012-08-27 作者:clarck

我想让用户头像URL将其用作div的背景URL样式。我尝试使用以下内容,但当我查看代码时,它不会返回任何内容,看起来是这样的。

background: url()
我使用了这个函数。

function get_avatar_url($get_avatar){
preg_match("/src=\'(.*?)\'/i", $get_avatar, $matches);
return $matches[1];
}
有什么帮助吗??

3 个回复
SO网友:Jono Warren

自己构造Gravatar URL相当简单,它只是用户电子邮件地址的MD5哈希。

<?php $gravatar = \'http://www.gravatar.com/avatar/\' . md5(strtolower($email)) . \'&s=32\'; ?>

<div class="avatar" style="background: url(<?php echo $gravatar ?>);" ></div>
Thes 参数定义了图像的大小(以像素为单位)。

Using Gravatars - WordPress Codex

SO网友:Ralf912

<?php
add_filter(
    \'get_avatar\',
    \'get_avatar_url\',
    10,
    5
);

function get_avatar_url( $avatar, $id_or_email, $size = 96, $default = \'\', $alt = \'\' ) {

    preg_match( \'#src=["|\\\'](.+)["|\\\']#Uuis\', $avatar, $matches );

    return ( isset( $matches[1] ) && ! empty( $matches[1]) ) ?
        (string) $matches[1] : \'\';  

}
在上应用筛选器get_avatar, 它需要5个参数(!)。第一个是完整的<img>-标签并且不要忘记源可以用双and 单引号(["|\'] ). 我想这就是你的功能失败的地方。

SO网友:Christine Cooper

从WordPress版本4.2.0开始,我们可以使用get_avatar_url(). 该函数可在中找到wp-includes/link-template.php:

function get_avatar_url( $id_or_email, $args = null ) {
    $args = get_avatar_data( $id_or_email, $args );
    return $args[\'url\'];
}
因此,您可以通过以下方式简单地使用它:

$avatar_url = get_avatar_url($user_id);
还有,我知道这是个老问题,但great lesson to be learned. 添加自定义函数时始终使用前缀。您的自定义函数是get_avatar_url() 新增的核心功能也是如此get_avatar_url(). 升级到4.2.0时,您可能会收到一个错误。

结束

相关推荐

How to change user`s avatar?

有没有办法在没有插件的情况下改变用户的头像?为什么在用户>你的个人资料中没有“头像上传”部分?我不能使用插件。我是失明还是被迫使用Gravatar/