登录后根据用户名重定向用户

时间:2012-09-13 17:51:15

标签: php wordpress login

使用WordPress - 我想检查谁刚刚登录,如果他们是UsernameX然后重定向到PageX,如果他们是管理员然后重定向到/ wp-admin /,所有其他人重定向到home_url();

这是我的代码:

function my_login_redirect($redirect_to, $request, $user){
    if(in_array('student',$user->user_login)) {
        return home_url("/students/");
    } else {
        if(in_array('administrator', $user->roles)){
            return home_url("/wp-admin/");
        } else {
            return home_url();
        }
    }
}
add_filter("login_redirect", "my_login_redirect", 10, 3);

然而它似乎不起作用 - 特别是对user_login的检查。有没有更好的工作方式呢?


回答/更正代码 - 感谢@soju:

function my_login_redirect($redirect_to, $request, $user){
    if($user->first_name == 'student')) {
        return home_url("/students/");
    } else {
        if(in_array('administrator', $user->roles)){
            return home_url("/wp-admin/");
        } else {
            return home_url();
        }
    }
}
add_filter("login_redirect", "my_login_redirect", 10, 3);

这意味着使用用户的名字,因为$ user不包含用户名,但是如果你想要的话,你可以使用$ user返回的ID来获取它。

1 个答案:

答案 0 :(得分:1)

这一行:

if(in_array('student',$user->user_login)) {

不正确,$user->user_login不存在且不是数组。

编辑:http://codex.wordpress.org/Class_Reference/WP_User

相关问题