我正在使用一个定制的头像上传覆盖默认的凹版。它在我的上传/avatars/文件夹中创建两个文件:
$smallavatar = $userid.'-60x60'.$ext;
$bigavatar = $userid.'-300x300'.$ext;然后,我为get_avatar()和get_avatar_url()设置了一个过滤器:
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;
}然后,当我用过滤函数调用它时:
get_avatar($userid, 30 );
or
get_avatar_url( $userid, array('size' => 19))我总是得到300x300大小的大头像,所以很明显,在函数pbg_avatar中检查大小不起作用。我该怎么检查呢?
发布于 2019-05-08 11:06:14
你有用阿凡达做什么的插件吗?您的过滤器优先级是1,这是非常低的,有很高的机会,它被任何插件。为了测试目的,设置非常高的优先级。此外,您还对过滤器说,您传递5个变量,而只传递3个变量,以防试图正确设置所有内容,所以请尝试:
add_filter( 'get_avatar' , 'pbg_avatar' , 999 , 3 );看看是否有帮助。
要了解有关add_filter参数的更多信息,在这里读。
编辑:
您可以检查函数中的所有内容。例如,要查看它是否正确地获取所有变量,只需回显变量即可。
例如,在返回之前,请执行:
echo "
---------- DEBUGGING -----------<br>
size: {$size} <br>
sizer: {$sizer} <br>
avalink: {$avalink} <br>
-------------------------------<br>
";并检查收到的$size是否正确。
https://stackoverflow.com/questions/56038779
复制相似问题