首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >get_avatar()和get_avatar_url()筛选器请求的大小

get_avatar()和get_avatar_url()筛选器请求的大小
EN

Stack Overflow用户
提问于 2019-05-08 10:37:49
回答 1查看 1.8K关注 0票数 1

我正在使用一个定制的头像上传覆盖默认的凹版。它在我的上传/avatars/文件夹中创建两个文件:

代码语言:javascript
复制
$smallavatar = $userid.'-60x60'.$ext;
$bigavatar = $userid.'-300x300'.$ext;

然后,我为get_avatar()和get_avatar_url()设置了一个过滤器:

代码语言:javascript
复制
add_filter( 'get_avatar', 'pbg_avatar', 1, 5 );

function pbg_avatar( $avatar, $id_or_email, $size ) {

    //some code here

    $curavatar = '/var/www/mysite.com/wp-content/uploads/avatars/'.$user->data->ID;
    $avalink = '/wp-content/uploads/avatars/'.$user->data->ID;

    // THIS SEEMS TO BE NOT WORKING
    if ($size < 31) { 
        $sizer = '-60x60';
    } else {
        $sizer = '-300x300';
    }

    // CHECK AVATAR
    if ( file_exists( $curavatar.'-300x300.jpg')) { 
        $avalink = $avalink.$sizer.'.jpg';
        $avatar = "<img alt='{$alt}' src='{$avalink}' class='avatar avatar-{$size} photo' height='{$size}' width='{$size}' />";
    }

    return $avatar;
}

然后,当我用过滤函数调用它时:

代码语言:javascript
复制
get_avatar($userid, 30 );
or
get_avatar_url( $userid, array('size' => 19))

我总是得到300x300大小的大头像,所以很明显,在函数pbg_avatar中检查大小不起作用。我该怎么检查呢?

EN

回答 1

Stack Overflow用户

发布于 2019-05-08 11:06:14

你有用阿凡达做什么的插件吗?您的过滤器优先级是1,这是非常低的,有很高的机会,它被任何插件。为了测试目的,设置非常高的优先级。此外,您还对过滤器说,您传递5个变量,而只传递3个变量,以防试图正确设置所有内容,所以请尝试:

代码语言:javascript
复制
add_filter( 'get_avatar' , 'pbg_avatar' , 999 , 3 );

看看是否有帮助。

要了解有关add_filter参数的更多信息,在这里读

编辑:

您可以检查函数中的所有内容。例如,要查看它是否正确地获取所有变量,只需回显变量即可。

例如,在返回之前,请执行:

代码语言:javascript
复制
echo "
---------- DEBUGGING -----------<br>
size: {$size} <br>
sizer: {$sizer} <br>
avalink: {$avalink} <br>
-------------------------------<br>
";

并检查收到的$size是否正确。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56038779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档