2015-05-08 58 views

回答

2

试试这个:

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); 

说明

如果你看一下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); 

检查它包含的数据

所以你可以$user对象包含角色,显示当前登录用户的角色后,务必从functions.php删除上面的代码。所以我简单地检查了if($user->roles[0] === 'student_role')如果当前登录的用户有student_role然后wp_redirect('Your page link goes here')重定向他们到某个页面。

让我知道你是否有任何疑问。

+0

感谢它完美 –

+0

你能解释一下你的代码吗?我的意思是你通过参数来运作。并请告诉你使用了add_action('wp_login','rohil_login_redirect_based_on_roles',10,2)等动作钩子; –

+0

优秀...请告诉这是什么“add_action('wp_login','rohil_login_redirect_based_on_roles',10,2);” –

相关问题