Php get_avatar()和get_avatar_url()过滤器通过请求的大小

Php get_avatar()和get_avatar_url()过滤器通过请求的大小,php,wordpress,filter,Php,Wordpress,Filter,我正在使用一个自定义的头像上传覆盖默认的坟墓。它在我的uploads/avatars/文件夹中创建了两个文件: $smallavatar = $userid.'-60x60'.$ext; $bigavatar = $userid.'-300x300'.$ext; 然后我有一个过滤器,用于get_avatar()和get_avatar_url(): 我总是得到一个300x300大小的大头像,所以很明显,在功能pbg_头像不起作用的情况下检查头像的大小。我如何正确地检查它?你有任何插件可以使用阿凡

我正在使用一个自定义的头像上传覆盖默认的坟墓。它在我的uploads/avatars/文件夹中创建了两个文件:

$smallavatar = $userid.'-60x60'.$ext;
$bigavatar = $userid.'-300x300'.$ext;
然后我有一个过滤器,用于get_avatar()和get_avatar_url():


我总是得到一个300x300大小的大头像,所以很明显,在功能pbg_头像不起作用的情况下检查头像的大小。我如何正确地检查它?

你有任何插件可以使用阿凡达吗?您的过滤器优先级为1,这是非常低的,并且很有可能被任何插件覆盖。出于测试目的,设置非常高的优先级。您还对过滤器说,您传递了5个变量,而只传递了3个,以防万一,请尝试正确设置所有变量,因此请尝试:

add_filter( 'get_avatar' , 'pbg_avatar' , 999 , 3 );
看看是否有帮助

要了解有关添加过滤器参数的详细信息


编辑:

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

例如,在返回之前,请执行以下操作:

echo "
---------- DEBUGGING -----------<br>
size: {$size} <br>
sizer: {$sizer} <br>
avalink: {$avalink} <br>
-------------------------------<br>
";
echo”
----------调试------------
大小:{$size}
sizer:{$sizer}
avalink:{$avalink}
-------------------------------
";

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

更新:ajaxed call返回正确的大小。但在页面上加载它的300x300不确定它是否为您触发了任何错误,但您缺少分号;返回$avatar后,如果您使用自定义化身,您可能需要检查
pre_get_avatar_data
过滤器,该过滤器可以提前检索化身URL,因此将跳过默认的WP Gravatar@Artem我已经跳过了默认的Gravatar,这不是我遇到的问题。我已经得到了正确的自定义头像,但是我得到了错误的大小。当我固定了变量的数量和优先级时,get_avatar()过滤器开始正常工作,但是get_avatar\u url()过滤器仍然返回一个大图像,而不是一个小图像。@SamTyurenkov,这可能是因为get_avatar\u url也有自己的钩子,所以你们需要创建类似的过滤函数来返回url,但对于hook.well,我忘了在一个问题中添加它,但我有它。它返回url,但对于300x300头像,而不是60x60头像
add_filter( 'get_avatar' , 'pbg_avatar' , 999 , 3 );
echo "
---------- DEBUGGING -----------<br>
size: {$size} <br>
sizer: {$sizer} <br>
avalink: {$avalink} <br>
-------------------------------<br>
";