刚开始使用Typecho的我,没有任何经验,开始不停的看各种大佬的文章、模板,再一次评论的过程中我发现,居然调用了我的QQ头像,于是乎萌生了修改源代码的想法,可惜我太天真,不懂php的我想改源码?

功夫不负有心人经过一段时间的查找,终于找到了最终的解决办法

修改Typecho目录下的var/Typecho/Common.php,关于获取Gravatar的代码,修改为:

上代码

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头像

好了大家可在下方评论进行下测试啦