Typecho替换Gravatar头像地址方法

2022-05-03T23:23:00

前言

我发现评论的头像不显示,刚开始我就没怎么管,后面评论多了我看着就难受,再加上我这个人有一点强迫症。所以,我决定解决这个问题,水一篇文顺便做个备份。
我一个小白我也不知道是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}

总结

我用的是第一种方法,第二种我没有试,你们自己试吧。觉得慢的话就更换加速地址,或者自己找吧。

当前页面是本站的「Baidu MIP」版。发表评论请点击:完整版 »