我想重定向一个用户,他的用户ID是6。所以我在我的functions.php
if ( is_user_logged_in() ) {
$user_id = get_current_user_id();
if ($user_id == 6) {
/* redirect users to front page after login */
function redirect_to_front_page() {
global $redirect_to;
if (!isset($_GET[\'redirect_to\'])) {
$redirect_to = get_option(\'siteurl\');
}
}
add_action(\'login_form\', \'redirect_to_front_page\');
}
}
但用户仍然会在登录后转到rpofile页面。我怎样才能让它工作?
[update]然后我尝试更改为用户名而不是用户ID,但仍然相同。登录后,他会获得个人资料页面。像这样:
function redirect_to_front_page() {
global $redirect_to;
if ( is_user_logged_in() ) {
//$user_id = get_current_user_id();
$current_user = wp_get_current_user();
//if ($user_id == 6)
if ($current_user->user_login = \'hirer\') {
/* redirect users to front page after login */
if (!isset($_GET[\'redirect_to\'])) {
$redirect_to = get_option(\'siteurl\');
}
}
}
}
add_action(\'login_redirect\', \'redirect_to_front_page\');
还是没什么变化。用户登录时将获得配置文件页面。
最合适的回答,由SO网友:cybmeta 整理而成
您需要使用login_redirect 滤器returning 重定向位置:
add_filter( \'login_redirect\', \'redirect_to_home\', 10, 3 );
function redirect_to_home( $redirect_to, $request, $user ) {
if( $user->ID == 6 ) {
//If user ID is 6, redirect to home
return get_home_url();
} else {
//If user ID is not 6, leave WordPress handle the redirection as usual
return $redirect_to;
}
}
SO网友:shyammakwana.me
使用login_redirect 改为挂钩login_form您可以在函数中移动条件
如下面的代码。
function redirect_to_front_page() {
global $redirect_to;
if ( is_user_logged_in() ) {
$user_id = get_current_user_id();
if ($user_id == 6) {
/* redirect users to front page after login */
if (!isset($_GET[\'redirect_to\'])) {
return $redirect_to = get_option(\'siteurl\');
}
}
}
}
add_action(\'login_redirect\', \'redirect_to_front_page\' , 10 , 3 );