将下方代码替换 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头像,就会显示默认头像。