八个比特

Typecho默认头像替换

字数统计: 348阅读时长: 1 min
2019/04/07 Share

Gravatar 头像在国内极其不稳定,有时候访问 1.gravatar.com 的时候差不多要半分钟;
另外很多游客本身是没有 Gravatar 账号的,默认的蓝G头像也说不上美观。

上百度查了下貌似有种简便的方法:
修改网站根目录下的 config.inc.php 文件:
在里面添加一个:

define(‘TYPECHO_GRAVATAR_PREFIX‘, ‘http://cn.gravatar.cn/avatar/‘);

我改成了本地的文件夹做了定向,但有小瑕疵:游客的头像是正常的,自己的头像加载不出来。
后来F12才发现自己头像的地址是

1
http://xxx.xxx.cn/avatar/avatar.png9349385687463724@#¥%……&

这个跟 gravatar 获取头像的原理有关,后面的是用户自己的邮箱 md5 后的。

于是找了个办法彻底ban掉gravatar:

找到 /var/Widget/Abstract/Comments.php
在第390左右可以看到 gravatar 的函数,把 $url 换成本地的图片:

1
2
3
4
5
6
7
8
9
10
11
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 = "http://xxx.xxx.com/xxx/xxx.png";
echo '<img class="avatar" src="' . $url . '" alt="' .
$this->author . '" width="' . $size . '" height="' . $size . '" />';
}
}
}

缺点是图片就成静态的了,有 Gravatar 账号的游客进来也显示的默认头像。

CATALOG