正文

  • Typecho默认头像来自Gravatar,没设置过头像就丑丑的,想替换为QQ头像。之前用的WordPress,对Typecho不是很熟悉,于是进行百度。
  • Typecho似乎百度相关资料特别少,唯一能找到的是巷子工坊的两篇文章,但他实现的效果似乎仅支持QQ邮箱,普通邮箱反而不适用。
  • 经过反复测试,最终解决办法如下:
    修改Typecho目录下的var/Typecho/common.php,在大约1009行,关于获取Gravatar的代码*(转者注:大约在922行)*,修改为:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
$reg = "/^\d{5,11}@[qQ][Qq]\.(com)$/";
if (preg_match($reg, $mail)) {
$img = explode("@", $mail);
$url = "//q2.qlogo.cn/headimg_dl?dst_uin={$img[0]}&spec=100";
} else {
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;
}

PHP

  • 复制*

  • 输入QQ邮箱,调用QQ头像;输入普通邮箱,调用Gravatar头像。

声明

评论