我有一个add_filter
的函数auth_cookie_expiration
钩此挂钩接受三个参数。然而,我对传递更多参数感兴趣。例如:
add_filter( \'auth_cookie_expiration\', \'get_expiration\', 10, 5 );
这可能与apply_filter
, 但是add_filter
函数被调用一次,这会导致抛出错误:PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function get_expiration(), 3 passed in ... and exactly 5 expected
我使用闭包解决了这个问题,但这似乎是一种完全荒谬的方法:add_filter( \'auth_cookie_expiration\', function() use ($param1, $param2) { return get_expiration(null, null, null, $param1, $param2); } , 10, 3 );
有没有合适/更优雅的方法让它接受其他参数(更好的是,我想要的参数代替默认参数)?我是不是误解了add_filter
应该有用吗?为了举例说明,假设get_expiration
如下所示:
function get_expiration( $length, $user_id, $remember, $param1, $param2 )
{
return $param1 + $param2;
}