Wordpress login_redirect过滤器被忽略,无效

时间:2012-09-29 20:57:20

标签: wordpress filter

我正在尝试将具有特定元标记的用户在登录时发送到特殊页面。我知道$ current_user全局可能不可用,但是过滤器将用户作为参数传递,所以我想是什么我正在做的应该工作:

//special login redirect for employers
function employer_login_redirect($redirect_url, $request_url, $user) {
    $user;
    $is_employer = get_user_meta($user->ID, 'is_employer', true);
    var_dump($is_employer);
    if ($is_employer) {
        return get_bloginfo('url') . "/candidate-ranks/";
    } else {
        return $redirect_url;
    }
}
add_filter( 'login_redirect', 'employer_login_redirect', 90, 3 ); //late priority just in case other plugins are interfering

我错过了什么吗?我甚至无法显示var_dumpt,这让我觉得回调函数甚至没有被触发。

1 个答案:

答案 0 :(得分:0)

看起来不错,但我认为你应该使用site_url()因为get_bloginfo('url')返回home_url而不是site_url。这可能是一个问题。

function employer_login_redirect($redirect_url, $request_url, $user) {
    $is_employer = get_user_meta($user->ID, 'is_employer', true);
    if ($is_employer) {
        return site_url() . "/candidate-ranks/";
    } else {
        return $redirect_url;
    }
}
add_filter( 'login_redirect', 'employer_login_redirect', 90, 3 );