diff --git a/wp-includes/link-template.php b/wp-includes/link-template.php index 15d3248ff..70f759567 100644 --- a/wp-includes/link-template.php +++ b/wp-includes/link-template.php @@ -2302,13 +2302,13 @@ function get_dashboard_url( $user_id, $path = '', $scheme = 'admin' ) { $user_id = (int) $user_id; $blogs = get_blogs_of_user( $user_id ); - if ( empty($blogs) ) { + if ( ! is_super_admin() && empty($blogs) ) { $url = user_admin_url( $path, $scheme ); } elseif ( ! is_multisite() ) { $url = admin_url( $path, $scheme ); } else { $current_blog = get_current_blog_id(); - if ( $current_blog && in_array($current_blog, array_keys($blogs)) ) { + if ( $current_blog && ( is_super_admin( $user_id ) || in_array( $current_blog, array_keys( $blogs ) ) ) ) { $url = admin_url( $path, $scheme ); } else { $active = get_active_blog_for_user( $user_id ); diff --git a/wp-login.php b/wp-login.php index eb3c9fe2d..ffa00ab07 100644 --- a/wp-login.php +++ b/wp-login.php @@ -586,7 +586,7 @@ default: if ( ( empty( $redirect_to ) || $redirect_to == 'wp-admin/' || $redirect_to == admin_url() ) ) { // If the user doesn't belong to a blog, send them to user admin. If the user can't edit posts, send them to their profile. - if ( is_multisite() && !get_active_blog_for_user($user->id) ) + if ( is_multisite() && !get_active_blog_for_user($user->id) && !is_super_admin( $user->id ) ) $redirect_to = user_admin_url(); elseif ( is_multisite() && !$user->has_cap('read') ) $redirect_to = get_dashboard_url( $user->id );