0

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

4

1 に答える 1

1

この行:

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

は正しくあり$user->user_loginません。存在せず、配列ではありません。

編集: http://codex.wordpress.org/Class_Reference/WP_User

于 2012-09-13T17:59:29.613 に答える