如何在登录后重定向特定用户?

时间:2014-12-09 作者:Riffaz Starr

我想重定向一个用户,他的用户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\');  
还是没什么变化。用户登录时将获得配置文件页面。

2 个回复
最合适的回答,由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 );             

结束

相关推荐

Sort users by meta_value_num

我在使用WP_User_Query 要按元数值对用户进行排序,我认为这很简单,因为它只按字母降序显示结果。 <?php $args = array( \'orderby\' => \'meta_value_num\', \'meta_key \' => \'epicredvote\', \'order\' => \'DESC\', ); // The Query $user_query = n