方法:
修改Typecho目录下的var/Typecho/common.php,在大约986行,关于获取Gravatar图像的代码找到以下代码:
public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
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;
}
替换成:
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头像。
Gravatar头像
另外修改了几个系统文件,以后升级typecho(如果还要那么一天)可能还要重新改。
\var\Typecho\Common.php
Line1004行 修改
$url .= '&d=' . $default;为$url .= '&d=retro';
“d”参数代表default,用于Gravatar默认头像类型选择,有以下几个可选值,
[hide]留空显示gravatar官方图形
404直接返回404错误状态
mm神秘人(一个灰白头像)
identicon抽象几何图形
monsterid小怪物
wavatar用不同面孔和背景组合生成的头像
retro八位像素复古头像[/hide]
评论