前言
Typecho
使用的是Gravatar
作为用户的头像,但是大部分用户都没有设置Gravatar
头像,而且Gravatar
在国内访问速度感人,大大影响了用户体验和站点速度。
解决方法
让数字QQ邮箱显示QQ头像,非数字QQ邮箱使用Gravatar国内镜像加快速度。
修改文件
在typecho
根目录/var/Typecho/Common.php
文件,注释掉大约在第1010
行至第1028
行的代码
/**
public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
……
return $url;
}**/
在其下方添加以下 php 代码
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://gravatar.loli.net' : 'http://gravatar.loli.net';
$url .= '/avatar/';
}
if (!empty($mail)) {
$url .= md5(strtolower(trim($mail)));
}
$url .= '?s=' . $size;
$url .= '&r=' . $rating;
$url .= '&d=' . $default;
}
return $url;
}
现在Typecho
全局支持数字QQ邮箱显示QQ头像了,Gravatar
使用国内镜像源。
,不错不错