我正在编写一个过滤函数来重定向登录:
function my_filter_func( $redirect_to, $requested_redirect_to, $user) {
// My code.
}
add_filter( \'login_redirect\', \'my_filter_func\', 10, 3 );
模板文件中的过滤器挂钩是:
$redirect_to = apply_filters( \'login_redirect\', $redirect_to, $requested_redirect_to, $user );
正如你所见,
$redirect_to
,
$requested_redirect_to
,
$user
传递给我的过滤器函数。我的filter函数接收这些,我可以在函数的代码中使用它们。
My question:
我的函数必须接收所有3个变量吗?或者我可以这样做:
function my_filter_func( $redirect_to ) {
// My code.
}
add_filter( \'login_redirect\', \'my_filter_func\' );
最合适的回答,由SO网友:Milo 整理而成
您的函数不必接受所有参数,您不能指定接受参数的数量,它将默认只传递第一个参数。
您还可以指定最大为并包括参数总数的任意数目。例如,如果您只需要前2个,这也会起作用:
function my_filter_func( $redirect_to, $requested_redirect_to ) {
// My code.
}
add_filter( \'login_redirect\', \'my_filter_func\', 10, 2 );
您不能使用比您在
add_filter
呼叫例如,这将生成缺少参数2的警告:
function my_filter_func( $redirect_to, $requested_redirect_to ) {
// My code.
}
add_filter( \'login_redirect\', \'my_filter_func\' );