欢迎来到好人卡资源网,专注网络技术资源收集,我们不仅是网络资源的搬运工,也生产原创资源。寻找资源请留言或关注公众号:烈日下的男人

解决 Typecho 后台头像不显示的问题

网站源码 sky995 1年前 (2022-10-26) 252次浏览 0个评论

本文及资源最后更新时间 2022-10-27 by sky995

起因

Typecho 默认使用的是 gravatar 的头像,这个东西会根据用户的邮箱去调用你的头像,有两个问题:一是这个需要用户去主动上传,二是这个东西在大天朝是访问不到的,用户无法使用无法上传获取头像。

主题

Akina 在主题评论模块设计的时候就考虑到 gravatar 可能并不太适合国内用户。但是又不能完全不用,会让有“魔法”的用户,体验下降。
考虑后使用 gravatar + QQ头像的 方案。及QQ邮箱用户优先使用QQ头像,其余用户使用 gravatar 头像。

Typecho

早在1.2.0版本之前我就注意到有这个问题,那个时候并没有注意,那就现在来改改。
找到var/Typecho/Common.php 大概800多行 替换面这一段代码。

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)));
}

替换为

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)) {
  if(preg_match('|^[1-9]\d{4,10}@qq\.com$|i',$mail)){
    $url = '//q.qlogo.cn/g?b=qq&nk=' . explode("@",$mail)[0]. '&s=160';
  }else{
    $url .= md5(strtolower(trim($mail)));
  }
}

好人卡资源网 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:解决 Typecho 后台头像不显示的问题
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址