| | 678 | |
| | 679 | function invalid_site_admin_redirect() { |
| | 680 | |
| | 681 | global $current_blog; |
| | 682 | |
| | 683 | # Unless admin_url path matches base of current URL (up to wp-admin), redirect to canonical URL |
| | 684 | if( preg_match( '/(.*\/wp-admin\/)(.*?)$/', $_SERVER['REQUEST_URI'], $requested_admin_url ) && |
| | 685 | trailingslashit( $requested_admin_url[1] ) !== parse_url( admin_url(), PHP_URL_PATH ) ) { |
| | 686 | |
| | 687 | wp_redirect( |
| | 688 | add_query_arg( |
| | 689 | array( 'error' => 'invalid_site' ), |
| | 690 | get_admin_url( $current_blog->blog_id, $requested_admin_url[2] ) |
| | 691 | ) |
| | 692 | ); |
| | 693 | } |
| | 694 | |
| | 695 | if( isset( $_GET['error'] ) && $_GET['error'] == 'invalid_site' ) { |
| | 696 | /** We have no idea what invalid page was requested, so fire this notice for all admin pages */ |
| | 697 | add_action( 'all_admin_notices', 'invalid_site_admin_notice' ); |
| | 698 | } |
| | 699 | |
| | 700 | } |
| | 701 | |
| | 702 | function invalid_site_admin_notice() { |
| | 703 | echo '<div class="update-nag">' . __('You were redirected here because you requested the dashboard for a site that does not exist.') . '</div>'; |
| | 704 | } |
| | 705 | No newline at end of file |