前言
Typecho 默认头像来自 Gravatar,没设置过头像就丑丑的,想替换为 QQ 头像。之前用的 WordPress,对 Typecho 不是很熟悉,于是进行百度。
Typecho 似乎百度相关资料特别少,唯一能找到的是巷子工坊的两篇文章,但他实现的效果似乎仅支持 QQ 邮箱,普通邮箱反而不适用。
经过反复测试,最终解决办法如下:
使用方法
修改 Typecho 目录下的 var/Typecho/common.php,在大约 932 行,关于获取 Gravatar 的代码
找到以下代码:
public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {$url = __TYPECHO_GRAVATAR_PREFIX__;} else {
$url = $isSecure ? 'https://dn-qiniu-avatar.qbox.me' : 'http://gravatar.proxy.ustclug.org';
$url .= '/avatar/';
}
if (!empty($mail)) {$url .= md5(strtolower(trim($mail)));
}
$url .= '?s=' . $size;
$url .= '&r=' . $rating;
$url .= '&d=' . $default;
return $url;
}
替换成:
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;
}
实现的效果:输入 QQ 邮箱,调用 QQ 头像;输入普通邮箱,调用 Gravatar 头像。
原文出处
上面的教程转载于网络
1没有
沒有 2022-02-15
为什么我的不行,,,还是默认的蓝色的那个
陶小桃 2021-12-11
12我
我来试一试 2021-11-21
康康效果啊哈哈::(哈哈)
白先生 2021-04-05