typecho评论调用QQ头像

 3年前     28  

文章目录

    typecho自带的头像是Gravatar,加载太慢,有时候直接不出来,用QQ邮箱显示评论头像,是QQ头像,岂不更好。
    首先打开网站根目录>var>Typecho,找到Common.php并打开它,在第922行找到以下代码,

     /**
         * 获取gravatar头像地址 
         * 
         * @param string $mail 
         * @param int $size 
         * @param string $rating 
         * @param string $default 
         * @param bool $isSecure 
         * @return string
         */
        public static function gravatarUrl($mail, $size, $rating, $default, $isSecure = false)
        {
            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;
        }

    替换为以下代码,

     /**
         * 获取gravatar头像地址 
         * 
         * @param string $mail 
         * @param int $size 
         * @param string $rating 
         * @param string $default 
         * @param bool $isSecure 
         * @return string
         */
         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邮箱头像,其他邮箱的不行,其他邮箱的段先森自己弄明白了再发。

    版权声明:段先森 发表于 3年前,共 1339 字。
    转载请注明:typecho评论调用QQ头像 | 三无青年

    您可能感兴趣的

    6 条评论

    • avatar

      小小小明 ( VIP 1 )

      中国甘肃
      回复

      如果更改头像源?官方的用不了

    • avatar

      隔壁小胡 ( VIP 3 )

      中国广东
      回复

      其实qlogo接口也好不了哪里去,时常抽风,可以通过cdn加速Gravatar头像,速度很不错哦!可以参考下我的这篇文章:https://hq233.cn/archives/204.html

    • avatar

      段先森

      中国甘肃
      回复

      测试时间