Typecho的默认头像来自Gravatar,没有设置过的话,头像会很丑。即使设置了,因为在海外,经常因为被墙,导致头像加载错乱,很不稳定。所以,研究了一下怎么修改。
首先,F12找了一下所在分区,然后,在主题文件的comments.php文件了看来半天,翻了个遍也没找到。
然后,查了下百度,原来Typecho内核还有一个comment.php文件对Typecho不熟
修改它(文件路径:var/Typecho/common.php)
大约在第932行,替换为如下代码

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;
    }

保存测试,OK啦,评论已经使用QQ头像了(头像来自邮箱,QQ邮箱为QQ头像,普通邮箱为Gravatar默认头像)。
当然,还可以再对Gravatar的头像源进行修改啦,QQ邮箱和Gravatar两不误!

标签: 经验