Typecho 调用 QQ 头像的多种方法

Author Avatar
MonsterX 2018年12月22日
  • 在其它设备中阅读本文章

近来看到很多站点的评论都可以在用户输入 QQ 邮箱时自动获取其 QQ 头像来替代默认的 Gravatar 头像,这样方便了很多没有时间自定义 Gravatar 头像的人,我觉得很有意义。在逛 Typecho 官方社区的机缘巧合下看到博客 @侥の blog 给出了这样的代码,巧的是这篇博文也是转载的,我说怎么回事文章下面疑似版权模块的地方链接给的却不是自己页面的网址,原帖在 @宸轩云 Typecho 评论调用 QQ 头像 。现收藏于此。

操作:

Typecho 目录下 var/Typecho/common.php ,932 行,关于获取 Gravatar 头像的代码:

public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
    {
        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 .= '&r=' . $rating;
        $url .= '&d=' . $default;

        return $url;
    }

修改为:

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 .= '&r=' . $rating;
                $url .= '&d=' . $default;
            }
            return $url;
    }

效果:

  • 输入 QQ 邮箱,调用 QQ 头像
  • 输入普通邮箱,调用 Gravatar 头像

后续:

看到网友建议,直接修改 Typecho 源码并不是一个很好的方法,这里还有另外两种方法

  • 主题函数实现
  • 将评论区“邮箱”项定义为“QQ”,后台处理使提交数据为“ $QQ @qq.com”并获取 QQ 头像

目前期末突击,过阵子填坑。谢谢持续关注。

本文链接:https://monsterx.cn/Front-end/Gravatar-to-QQ.html
本站文章除特殊说明外全部由 MonsterX 原创发布,未经允许禁止以任何形式转载。
如果您发现以上内容含有任何引起不适/侵犯权利/违反法律的内容,请立即 联系站长 进行处理。

    心
    心  2019-01-04, 15:04

    来看看是不是能获取QQ头像啊

    小怪兽
    小怪兽  2019-01-04, 14:44

    来看看是不是能获取QQ头像啊