搜 索

修改Typecho默认评论调用QQ头像

  • 778阅读
  • 2021年04月05日
  • 0评论
首页 / Typecho 👑 / 正文
文章缩略图来自站酷ID:revan_l

Gravatar标志

前言

很多站长用Typecho原生的主题来搭建自己的站点,这样它默认头像都是来自Gravatar,千篇一律就丑丑的,想替换为QQ头像。之前用的WordPress,对Typecho不是很熟悉,于是进行百度。Typecho似乎百度相关资料特别少,唯一能找到的是巷子工坊的两篇文章,但他实现的效果似乎仅支持QQ邮箱,普通邮箱反而不适用,经过反复测试,最终解决办法如下:

使用方法

  • 修改Typecho目录下的var/Typecho/common.php,在大约932行,关于获取Gravatar的代码,找到以下代码
public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
    {
        if (defined('__TYPECHO_GRAVATAR_PREFIX__')) {
            $url = __TYPECHO_GRAVATAR_PREFIX__;
        } else {
            $url = $isSecure ? 'https://dn-qiniu-avatar.qbox.me' : 'http://gravatar.proxy.ustclug.org';
            $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头像。完美

评论区
暂无评论
avatar