Wordpress:如何设置挂钩优先级?

时间:2018-11-15 09:35:28

标签: wordpress

我具有此功能,可以在注册后立即重定向访客。

它不起作用。据我看代码是正确的,那么我猜可能是其他使用相同插件的插件。

是否可以通过设置钩子优先级来覆盖另一个钩子?

function somlaw_registration_redirect() {
    return home_url( '/my-page' );
}

add_filter( 'registration_redirect', 'somlaw_registration_redirect' );

4 个答案:

答案 0 :(得分:2)

add_filter格式

add_filter( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )

例如

// Accepting two arguments (three possible).
function example_callback( $value, $arg2 ) {
    ...
    return $maybe_modified_value;
}
add_filter( 'hook', 'example_callback', 10, 2 ); // Where $priority is 10, $accepted_args is 2.

您可以在代码中将优先级设置为类似

function somlaw_registration_redirect() {
    return home_url( '/my-page' );
}
add_filter( 'registration_redirect', 'somlaw_registration_redirect', 5, 2 );

获取更多详细信息: https://developer.wordpress.org/reference/functions/add_filter/

答案 1 :(得分:1)

尝试一下:

function somlaw_registration_redirect() {
  return home_url( '/my-page' );
}  
add_filter( 'registration_redirect', 'somlaw_registration_redirect',3);

add_filter接受第三个参数作为优先级。默认值为10,因此请输入小于10的任意值来设置优先级。

答案 2 :(得分:0)

尝试

add_filter( 'registration_redirect', 'somlaw_registration_redirect', 5 );

最后一位5是优先级。默认值为10。您可以进一步降低它,然后检查哪个数字适合您。

答案 3 :(得分:0)

尝试在函数中传递参数以及设置优先级:

function somlaw_registration_redirect( $redirect_url ) {
    return home_url( '/my-page' );
}
add_filter( 'registration_redirect', 'somlaw_registration_redirect', 3 );

注意:也请尝试更改优先级。