使用WordPress-我想检查谁刚刚登录,如果他们是用户名X,则重定向到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