由于我的留言板那里虽然写了可以直接填写qq号获取头像
但我发现还是有些人填写了qq邮箱,导致无法获取到头像
解决方法很简单,在后台打开 外观-主题文件编辑器
编辑 Theme Functions (functions.php)
在末尾插入以下代码
// 通过评论者的QQ邮箱显示对应头像
function get_qq_avatar($avatar, $id_or_email, $size, $default, $alt) {
$email = is_object($id_or_email) ? $id_or_email->comment_author_email : $id_or_email;
// 提取QQ邮箱中的QQ号
if (preg_match('/(\d+)@qq\.com/', $email, $matches)) {
$qq_number = $matches[1];
// 构建QQ头像URL
$avatar_url = "https://q2.qlogo.cn/headimg_dl?bs=qq&dst_uin={$qq_number}&spec=100";
$avatar = "<img alt='{$alt}' src='{$avatar_url}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
}
return $avatar;
}
add_filter('get_avatar', 'get_qq_avatar', 10, 5);
这段代码会检查评论者的邮箱是否是QQ邮箱,并根据QQ号返回头像
QQ头像大小可以通过调整spec
参数来控制