解决Typecho博客全球通用头像Gravatar不显示方法 - 替换头像源

  筱晗's
2021-10-06 / 0 评论 / 10 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年10月06日,已超过18天没有更新,若内容或图片失效,请留言反馈。

Typecho评论默认使用的是Gravatar头像,但因为Gravatar网站总是被墙,导致页面加载被拖慢,而且加载半天也还是个裂图,太影响心情,所以我们可以不使用Gravatar头像,换成另一个头像源。

改变这个,其实只需要修改很少量的代码就可以了,见下:
找到/var/Widget/Abstract/Comments.php,并打开

找到第390行,看到gravatar函数,并修改该函数,改成如下代码:

public function gravatar($size = 32, $default = NULL)
{
    if ($this->options->commentsAvatar && 'comment' == $this->type) {
        $rating = $this->options->commentsAvatarRating;
        $this->pluginHandle(__CLASS__)->trigger($plugged)->gravatar($size, $rating, $default, $this);
        if (!$plugged) {
            //$url = Typecho_Common::gravatarUrl($this->mail, $size, $rating, $default, $this->request->isSecure());
            $mailHash = NULL;
            if (!empty($this->mail)) {
            $mailHash = md5(strtolower($this->mail));
            }
            //$url = 'https://secure.gravatar.com/avatar/';   
            $url = 'https://cdn.v2ex.com/gravatar/';
            if (!empty($this->mail)) {$url .= $mailHash;}
            $url .= '?s=' . $size;
            $url .= '&r=' . $rating;
            $url .= '&d=' . $default;
            echo '<img class="avatar" src="' . $url . '" alt="' .
            $this->author . '" width="' . $size . '" height="' . $size . '" />';
        }
    }
}

好了,代码改好保存上传至服务器,然后再刷新下网页,久违的头像们是不是又回来了~

Typechp 1.1 开发版可直接在配置文件中定义头像源

替换方法

直接打开Typecho安装目录下的 config.inc.php 文件,加入以下代码即可(加在任何位置都可)

define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cdn.v2ex.com/gravatar/');

这个方法目前仅在Typecho程序1.1开发版本测试过,其他版本不知道能不能用。

0

评论 (0)

取消