操作教学
- 首先我们进入到宝塔或者1Panel面板,主包这边以宝塔面板为例子
- 随后找到你的子比主题站点根目录点击进去
- 前往该文件路径/wp-content/themes/zibll/inc/functions/zib-theme.php文件
打开需要编辑的文件,找到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'] . '"' : '') . '>';
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
暂无评论内容