针对Typecho头像问题调用或换源

前言

Typecho默认头像来自Gravatar,没设置过头像就丑丑的,想替换为QQ头像。之前用的WordPress,对Typecho不是很熟悉,于是进行百度。

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://dn-qiniu-avatar.qbox.me' : 'http://gravatar.proxy.ustclug.org';
        $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头像。

更换Gravatar头像源

使用官方头像源会拖慢国内的访问速度

在网站根目录下的 config.inc.php 文件加入以下代码。

define('__TYPECHO_GRAVATAR_PREFIX__', 'https://gravatar.loli.net/avatar/'); //更换头像源

复制

这里使用的是 loli.net 的头像源如果有需要也可以换成别的。

P.S 直接替换上边的地址就行了
http://gravatar.ihuan.me/avatar/
https://gravatar.proxy.ustclug.org/
https://cdn.v2ex.com/gravatar/
http://dn-qiniu-avatar.qbox.me/avatar

源:针对Typecho头像问题调用或换源-腾讯云开发者社区-腾讯云 (tencent.com)

最后修改:2023 年 10 月 21 日
如果觉得我的文章对你有用,请随意赞赏