menu Rileysion's Blog
Typecho替换Gravatar头像地址方法
64 浏览 | 2020-04-22 | 阅读时间: 约 1 分钟 | 分类: 技术分享 | 标签: 代码,typecho教程

1.替换Gravatar头像地址方法

打开var/Typecho/Common.php,找到下面的代码,大概在939行。
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;
}
替换为:
<!--仅替换为Gravatar国内头像源-->
  public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
{
    $url = $isSecure ? 'https://cdn.v2ex.com/gravatar/' : 'https://gravatar.loli.net/avatar/';
 
    if (!empty($mail)) {
        $url .= md5(strtolower(trim($mail)));
    }
 
    $url .= '?s=' . $size;
    $url .= '&amp;r=' . $rating;
    $url .= '&amp;d=' . $default;
 
    return $url;
}
<!--替换为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 .= '&amp;r=' . $rating;
                $url .= '&amp;d=' . $default;
            }
            return $url;
    }

2.另外一个修改方法

具体方式为在config.inc.php中加入<!--仅替换为Gravatar国内头像源-->
define('__TYPECHO_GRAVATAR_PREFIX__', 'https://cdn.v2ex.com/gravatar/');
知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

发表评论

email
web

全部评论 (暂无评论)

info 还没有任何评论,你来说两句呐!