如何在 WordPress 中登录后将具有特定“角色”的用户重定向到特定页面

Amm*_*san 2 php wordpress

我创建了一个名为Student_role的新用户角色,我想在登录时将具有此角色的用户重定向到表单页面(我从 wp 前端创建)。

我尝试了彼得登录重定向插件但失败了。

Roh*_*ner 6

尝试这个 :

function rohil_login_redirect_based_on_roles($user_login, $user) {

    if( in_array( 'student_role',$user->roles ) ){
        exit( wp_redirect('Your page link goes here' ) );
    }   
}

add_action( 'wp_login', 'rohil_login_redirect_based_on_roles', 10, 2);
Run Code Online (Sandbox Code Playgroud)

解释

如果您查看codex,您会发现它wp_login提供了两个参数:1)$user_login将返回一个字符串,2)$user将返回一个包含所有详细信息的对象。

但是您需要确保您也将优先级传递给该参数,否则它会给您一个错误。

如果您想查看该参数包含哪些数据,您可以运行以下代码,仅供学习之用

function rohil_login_redirect_based_on_roles($user_login, $user) {

    var_dump($user); // Will give you an object
    var_dump($user_login); //Will give you a string
    die();

}
add_action( 'wp_login', 'rohil_login_redirect_based_on_roles', 10, 2);
Run Code Online (Sandbox Code Playgroud)

确保functions.php在检查上面的代码包含的数据后将其删除

因此,您可以$user对象包含显示当前登录用户角色的角色。所以我简单地检查if($user->roles[0] === 'student_role')当前登录的用户是否有student_role然后wp_redirect('Your page link goes here')将他们重定向到某个页面。

如果您有任何疑问,请告诉我。