MENU

解决Typecho无法显示Gravatar头像的问题

• 2023 年 01 月 04 日 • 阅读: 397 • 实用技巧

前言

Gravatar(英语:Globally Recognized Avatar)是一项用于提供在全球范围内使用的头像服务。只要你在 Gravatar 的服务器上上传了你自己的头像,你便可以在其他任何支持 Gravatar 的博客、论坛等地方使用它。
从 2011 年 8 月起,gravatar.com 被部分地区屏蔽,部分用户访问博客时头像可能无法正确显示。2014 年,网站被解封,页面访问正常。约 2014 年 11 月左右,网站再次被屏蔽,部分用户访问博客时头像无法正确显示。现时已被封锁,方式为 DNS 污染。

由此导致 Typecho 无法显示 Gravatar 头像或加载非常缓慢。

So,修改默认的 Gravatar 头像源为第三方镜像源,即可解决显示问题


解决方法

更新提示

2024年4月15日 13:10:53,我已将我自己博客的头像源(config.inc.php中的__TYPECHO_GRAVATAR_PREFIX__)更换为cravatar,该源直接支持QQ头像,很棒!

/** 更换头像源 */
/**define('__TYPECHO_GRAVATAR_PREFIX__', 'https://dn-qiniu-avatar.qbox.me/avatar/');*/
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cravatar.cn/avatar/');

方法 1(推荐):修改文件config.inc.php

博客网站根目录下找到文件config.inc.php,直接在最后加入以下代码:

/** 更换头像源 */
define('__TYPECHO_GRAVATAR_PREFIX__', 'http://dn-qiniu-avatar.qbox.me/avatar/');

其中http://dn-qiniu-avatar.qbox.me/avatar/即为你要设置的镜像源地址

推荐源:(点击地址可查看是否存活)

源名称源地址
七牛(推荐)https://dn-qiniu-avatar.qbox.me/avatar/
极客族(推荐)https://sdn.geekzu.org/avatar/
九月的风https://cdn.sep.cc/avatar/
V2EXhttps://cdn.v2ex.com/gravatar/
Cravatarhttps://cravatar.cn/avatar/
Ihuanhttps://gravatar.ihuan.me/avatar/
lolihttps://gravatar.loli.net/avatar/
WeAvatarhttps://weavatar.com/avatar/

方法 2:修改文件Common.php

1. 打开网站目录下的/var/Typecho/Common.php文件

2. 找到以下代码(直接搜索部分代码或前往 900~1100 行用你的大眼睛扫描):

/**
     * 获取gravatar头像地址 
     * 
     * @param string $mail 
     * @param int $size 
     * @param string $rating 
     * @param string $default 
     * @param bool $isSecure 
     * @return string
     */
    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;
    }

3. 修改代码中指向的地址https://secure.gravatar.comhttp://www.gravatar.com为第三方镜像源。(以上代码块中的第16行)

例:

...
} else {
$url = $isSecure ? 'https://cravatar.cn/' : 'https://gravatar.loli.net';
$url .= '/avatar/'(镜像源文件夹);
}
...

推荐源:

源名称源地址
七牛(推荐)https://dn-qiniu-avatar.qbox.me
极客族(推荐)https://sdn.geekzu.org
九月的风https://cdn.sep.cc
V2EXhttps://cdn.v2ex.com (注意该镜像源的文件夹为/gravatar/)
Cravatarhttps://cravatar.cn
Ihuanhttps://gravatar.ihuan.me
lolihttps://gravatar.loli.net
WeAvatarhttps://weavatar.com
最后编辑于: 2024 年 04 月 15 日
返回文章列表 打赏
本页链接的二维码
打赏二维码
添加新评论

已有 2 条评论
  1. [...]define('__TYPECHO_GRAVATAR_PREFIX__', 'http://dn-qiniu-avatar.qbox.me/avatar/');或者其他方法其他方法[...]

  2. [...]define('__TYPECHO_GRAVATAR_PREFIX__', 'http://dn-qiniu-avatar.qbox.me/avatar/');或者其他方法其他方法主题位置/usr/themes插件位置/usr/plugins关于图片沙箱原图将这个压缩包解压到正在使用的主题目录下fslightbox-basic-3.4.1.zip把下面内容添加到header.php中前面<s[...]