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 を使用して取得できます。