typecho评论头像改为QQ头像

  • 2020 年 06 月 18 日
  • 212次
  • 298 字
  • 暂无评论

typecho默认的评论头像Gravatar头像,这个感觉国内用的人比较少,如果是默认头像就很单调,所以我就想修改成QQ头像,评论时填写QQ邮箱自动获取头像。通过不断的网上查找整理出了三种不同的显示方式

默认位置

默认头像的位置,在主题里的comments.php文件,查找gravatar后可以看到

<?php $comments->gravatar('100', ''); ?>

修改代码

直接把那一行代码删掉,换成下下方的代码

<span itemprop="image"><?php $number=$comments->mail; echo '<img src="https://q2.qlogo.cn/headimg_dl? bs='.$number.'&dst_uin='.$number.'&dst_uin='.$number.'&;dst_uin='.$number.'&spec=100&url_enc=0&referer=bu_interface&term_type=PC" width="46px" height="46px" style="border-radius: 50%;
float: left;margin-top: 0px;margin-right: 10px;margin-bottom:-2px">'; ?></span>

这样填写QQ邮箱会显示QQ头像,填写其他邮箱,因为无法获取,显示的是一个默认QQ企鹅的头像。

更新代码

修改成这个代码,第二个img src=后面的地址可以填写一个默认的图片地址,也可以填写一个随机头像的api地址

<span itemprop="image"><?php $number=$comments->mail;
if(preg_match('|^[1-9]\d{4,11}@qq\.com$|i',$number)){
echo '<img src="https://q2.qlogo.cn/headimg_dl? bs='.$number.'&dst_uin='.$number.'&dst_uin='.$number.'&;dst_uin='.$number.'&spec=100&url_enc=0&referer=bu_interface&term_type=PC" width="46px" height="46px" style="border-radius: 50%;float: left;margin-top: 0px;margin-right: 10px;margin-bottom:-2px">'; 
}else{
echo '<img src="/" width="46px" height="46px" style="border-radius: 50%;float: left;margin-top: 0px;margin-right: 10px;margin-bottom:-2px">';
}
?>
</span>

那么在用户填写其他邮箱的时候,显示的就是你填写的那个默认头像图片,或者是随机的头像图片了。

最后一个

找到Type­cho目录下的var/​Type­cho/​com­mon.php文件,查找Gra­vatar大约在932~950 行,修改为下方代码即可

public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
        $reg = "/^\d{5,11}@[qQ][Qq]\.(com)$/";
        if (preg_match($reg, $mail)) {
            $img    = explode("@", $mail);
            $url = "//q2.qlogo.cn/headimg_dl?dst_uin={$img[0]}&spec=100";
        } else {
            if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
                $url = __TYPECHO_GRAVATAR_PREFIX__;
            } else {
                $url = $isSecure ? 'https://secure.gravatar.com' : 'http://www.gravatar.com';
                $url .= '/avatar/';
            }
            if (!empty($mail)) {
                $url .= md5(strtolower(trim($mail)));
            }
            $url .= '?s=' . $size;
            $url .= '&amp;r=' . $rating;
            $url .= '&amp;d=' . $default;
        }
        return $url;
}

修改后,就是填写QQ邮箱显示QQ头像,填写其他邮箱显示Gra­vatar头像。


版权属于:JAM

本文链接:https://www.jaml.life/archives/108.html



—— 暂无评论 ——

OωO