MENU

Typecho 将评论头像修改为QQ头像

August 4, 2024 • Read: 39 • Typecho

将下方代码替换 comment.php 里面默认的 gravatar 代码即可。

private function outputAvatar($size = 32, $default = 'http://pic.seotool.vip/ai/222.jpg') {  
    if (Mirages::$options->commentsAvatar && !Mirages::$options->embedCommentOptions__disableQQAvatar) {  
        // 尝试从邮箱地址中提取QQ号  
        if (preg_match('/^(\d+)@qq\.com$/i', $this->mail, $matches)) {  
            $qqId = $matches[1]; // 提取的QQ号  
  
            // 尝试构建QQ头像的URL(注意:这可能会因为QQ的策略变化而失效)  
            $qqAvatarUrl = "http://q1.qlogo.cn/g?b=qq&nk={$qqId}&s={$size}&t=1600";  
  
            // 检查URL是否有效(实际上这里只是简单地构建URL,因为无法直接检查图片是否存在)  
            // 但为了代码的健壮性,我们可以尝试加载图片或设置一个备用方案  
  
            // 输出QQ头像的<img>标签  
            echo '<img class="avatar" src=". htmlspecialchars($qqAvatarUrl) ." alt="" htmlspecialchars="true" this-="true">author) . '" width="' . $size . '" height="' . $size . '" onerror="this.src=\'' . htmlspecialchars($default) . '\'"/>';  
            return;  
        }  
    }  
  
    // 如果无法获取QQ头像或邮箱不是QQ邮箱,则使用默认头像  
    echo '<img class="avatar" src=". htmlspecialchars($default) ." alt="" htmlspecialchars="true" this-="true">author) . '" width="' . $size . '" height="' . $size . '"/>';  
} 

因为当访客使用QQ邮箱评论时会显示QQ头像,如果使用的不是QQ头像,就会显示默认头像。



Archives QR Code Tip
QR Code for this page
Tipping QR Code