Typecho更换GravatarQQ邮箱头像源

CP'窝〃丨丨阅读: 149丨 156字

无论是Typecho还是WordPress,默认的Gravatar地址都是国外的,访问速度很慢而且时不时被墙,严重影响网站的访问体验,这里分享一下替换方法。
这里分享一下替换当前主题评论、留言板头像的方法。

//获取Gravatar头像 QQ邮箱取用qq头像
function getGravatar($email, $s = 96, $d = 'mp', $r = 'g', $img = false, $atts = array())
{
preg_match_all('/((\d)*)@qq.com/', $email, $vai);
if (empty($vai['1']['0'])) {
    $url = 'https://gravatar.loli.net/avatar/';
    $url .= md5(strtolower(trim($email)));
    $url .= "?s=$s&d=$d&r=$r";
    if ($img) {
        $url = '<img src="' . $url . '"';
        foreach ($atts as $key => $val)
            $url .= ' ' . $key . '="' . $val . '"';
        $url .= ' />';
    }
}else{
    $url = 'https://q2.qlogo.cn/headimg_dl?dst_uin='.$vai['1']['0'].'&spec=100';
}
return  $url;
}

上面这段代码,放当前主题的functions.php文件里,代码的意思是先对邮箱进行了判断,如果是QQ邮箱,就取QQ头像,不是的话再去gravatar取头像。

有了上面的代码,然后在需要输出头像的地方插入下面这段代码:

 $email=$this->user->mail; 
    $imgUrl = getGravatar($email);
    echo '<img src="'.$imgUrl.'" width="25px" height="25px" class="avatar hasLogin-author" >';


发表新评论