解决Typecho博客全球通用头像不显示方法

2015-01-16 • 学习心得11 条评论

在国内写个博客就是这么难,叹。
前些日子 Google 再次被屏蔽,给我们带来了很大的不便。
这回轮到全球通用头像 Gravatar 的服务器被屏蔽了。
好久没进过博客了,昨天进留言板一看:偶们都是无头骑士。这玩意到底招谁惹谁了 = =
Gravatar头像被墙之后,Typecho头像就显示不出来了
解决方案如下:

找到/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/';
                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 . '" />';
            }
        }
    }

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

发表评论取消回复

已有 11 条评论
  1. ZGQ ZGQ

    其实你可以试试羽中的头像缓存插件,它里面有个配置就是把获取头像的域名换成多说的,总觉得改源代码不好,一更新就没了

  2. 哈哈,还好我不是使用TY :mrgreen:

  3. = =其实如果主题使用了自定义评论的话,可以用几行代码就做出头像换源,还是www.gravater.com惹的祸 :arrow:

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

  5. http://www.v2ex.com/t/141485
    这里提供了一个 CDN,不过我改了 prefix 之后发现貌似没效果,然后就没有去捣鼓了,直接用了你这种方法。

  6. 丁丁~

  7. 我的站点头像会显示,但是不知道为什么评论的头像不会显示,所有评论的都不显示,急

  8. 赞一个!

    1. 奇怪我的头像怎么没有/斜眼笑

  9. JUMPING JUMPING

    我也试试

    1. JUMPING JUMPING

      怎么没头像