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

本文阅读 2 分钟
首页 Typecho文档 正文

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

改变这个,其实只需要修改很少量的代码就可以了,见下:

官方最新版本是 1.2.0,找到/var/Widget/Base/Comments.php,并打开

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

版本 1.1 (17.10.30),找到/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 . '" />';
        }
    }
}

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

可用的地址

https://cdn.v2ex.com/gravatar/
https://secure.gravatar.com/avatar/
https://gravatar.cat.net/avatar/

当然也有其他的头像源,根据自己的需要修改即可。

原创文章,作者:admin,如若转载,请注明出处:https://www.j2mm.com/typecho-docs/Gravatar.html
-- 展开阅读全文 --
Initial - 简约而不简单的Typecho主题
下一篇 » 01-17

发表评论

V注册会员 L评论等级
R1 条回复
  1. 2021-01-17     Linux /    Google Chrome

    嗯,方法挺不错的赞一个!!

没有更多评论了