Typecho替换Gravatar头像地址方法
前言
我发现评论的头像不显示,刚开始我就没怎么管,后面评论多了我看着就难受,再加上我这个人有一点强迫症。所以,我决定解决这个问题,水一篇文顺便做个备份。
我一个小白我也不知道是Typecho的问题还是Joe主题的问题,所以我就慢慢找了,终于让我找到是Typecho的问题了。下面教程开始吧。
{message type="warning" content="Gravatar是Globally Recognized Avatar的缩写,是gravatar推出的一项服务,意为“全球通用头像”。如果在Gravatar的服务器上放置了你自己的头像,那么在任何支持Gravatar的blog或者留言本上留言时,只要提供你与这个头像关联的email地址,就能够显示出你的Gravatar头像来。"/}
{ } 评论头像加载拖慢网页速度,由于默认的头像地址比较慢,可以替换为较快的cdn加速地址
{tabs}
{tabs-pane label="方法一"}
1.替换Gravatar头像地址方法
{message type="success" content="打开var/Typecho/Common.php,找到下面的代码,大概在932行(具体看Typecho版本,因为我还在用1.17版本的)。"/}
原代码
public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
$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;
}
替换后代码
{hide}
<!--替换为QQ头像源及Gravatar国内头像源-->
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://cdn.v2ex.com/gravatar/' : 'https://gravatar.loli.net/avatar/';
}
if (!empty($mail)) {
$url .= md5(strtolower(trim($mail)));
}
$url .= '?s=' . $size;
$url .= '&r=' . $rating;
$url .= '&d=' . $default;
}
return $url;
}
{/hide}
{/tabs-pane}
{tabs-pane label="方法二"}
具体方式为在config.inc.php中加入以下代码
{hide}
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cdn.v2ex.com/gravatar/');
{/hide}
{/tabs-pane}
{/tabs}
其他加速地址
{callout color="#28e6e3"}
https://avatar.zrahh.com/avatar/
https://cdn.v2ex.com/gravatar/
https://sdn.geekzu.org/avatar/
{/callout}
总结
我用的是第一种方法,第二种我没有试,你们自己试吧。觉得慢的话就更换加速地址,或者自己找吧。