繁体   English   中英

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

[英]Redirect user after login based on username

使用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来获取用户名。

这行:

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM