Wordpress - 登录后重定向到自定义页面

时间:2016-06-16 01:05:25

标签: php wordpress redirect login

我正在尝试将用户发送到我的自定义页面,但是当用户登录时,$username在网址中留空了

/connections/username/profile/edit/group/1/

以下代码工作正常,但$ username未正确执行

function my_login_redirect( $redirect_to, $request, $user ) {
    global $current_user;
      get_currentuserinfo();
     $username =  $current_user->user_login;
    $url = home_url( "/connections/$username/profile/edit/group/1/" ); 

    //is there a user to check?
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        //check for admins
        if ( in_array( 'administrator', $user->roles ) ) {
            // redirect them to the default place
            return $redirect_to;
        } else {
            return esc_url( $url );
        }
    } else {
        return $redirect_to;
    }
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );

1 个答案:

答案 0 :(得分:1)

在wordpress 4.5之后,不推荐使用get_currentuserinfo(),以便您可以使用代码

function my_login_redirect( $redirect_to, $request, $user ) {
    global $current_user;
     $current_user = wp_get_current_user();
     $username =  $current_user->user_login;
    $url = home_url( "/connections/$username/profile/edit/group/1/" ); 

    //is there a user to check?
    if ( isset( $user->roles ) && is_array( $user->roles ) ) {
        //check for admins
        if ( in_array( 'administrator', $user->roles ) ) {
            // redirect them to the default place
            return $redirect_to;
        } else {
            return esc_url( $url );
        }
    } else {
        return $redirect_to;
    }
}

add_filter( 'login_redirect', 'my_login_redirect', 10, 3 );