操作教学

  1. 首先我们进入到宝塔或者1Panel面板,主包这边以宝塔面板为例子
  2. 随后找到你的子比主题站点根目录点击进去
  3. 前往该文件路径/wp-content/themes/zibll/inc/functions/zib-theme.php文件

20251009090006642-image-80

打开需要编辑的文件,找到zib_get_avatar方法,大概在文件570行左右,将以下代码替换进去即可

function zib_get_avatar($avatar, $id_or_email, $args)
{
$user_id = zib_get_user_id($id_or_email);
$alt = $user_id ? get_the_author_meta('nickname', $user_id) . '的头像' . zib_get_delimiter_blog_name() : '头像';

// 获取用户邮箱
$email = '';
if (!empty(get_the_author_meta('email', $user_id))) {
    $email = trim(strtolower(get_the_author_meta('email', $user_id)));
}

$size = esc_attr($args['size'] ?: 100); // 默认尺寸100

// 尝试从QQ邮箱提取QQ号获取头像
$avatar = '';
if (!empty($email)) {
    // 检查是否为QQ邮箱并提取QQ号
    if (preg_match('/^(\d+)@qq\.com$/', $email, $matches)) {
        $qq = $matches[1];
        // 验证QQ号格式(5-13位数字)
        if (strlen($qq) >= 5 && strlen($qq) <= 13 && ctype_digit($qq)) {
            // 修正QQ头像接口:使用更稳定的headimg_dl接口
            $valid_sizes = [40, 100, 140, 200]; // 官方支持的常见尺寸
            $selected_size = in_array($size, $valid_sizes) ? $size : 100; // 确保尺寸合法
            $avatar = "//q2.qlogo.cn/headimg_dl?dst_uin={$qq}&spec={$selected_size}";
        }
    }
}

// 如果没有获取到QQ头像,则使用Cravatar头像
if (empty($avatar)) {
    $s = $size;
    $d = 'mm'; // 默认头像样式
    $r = 'g';  // 头像评级
    $avatar = 'https://cravatar.com/avatar/' . md5($email) . "?s={$s}&d={$d}&r={$r}";
}

// 优化头像地址
$avatar = str_replace('tb.himg.baidu.com', 'himg.bdimg.com', $avatar);
$avatar = preg_replace("/^(https:|http:)/", "", $avatar);
    
    // 生成img标签
    return '<img alt="' . esc_attr($alt) . '" src="' . esc_url($avatar) . '" class="avatar' . ($args['size'] ? ' avatar-' . $args['size'] : '') . ' avatar-id-' . $user_id . '"' . ($args['size'] ? ' height="' . $args['size'] . '" width="' . $args['size'] . '"' : '') . '>'; 
}

20251009090114144-image-81

© 版权声明
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容