From f821106df870070ff1c8ef27413277c105e8e872 Mon Sep 17 00:00:00 2001 From: Felix Arntz Date: Tue, 3 Oct 2017 19:26:49 +0000 Subject: [PATCH] Multisite: Use `WP_Network_Query` in `ms_load_current_site_and_network()`. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This gets rid of the last readonly direct database query for networks in core. 🎉 Props spacedmonkey. Fixes #41762. Built from https://develop.svn.wordpress.org/trunk@41718 git-svn-id: http://core.svn.wordpress.org/trunk@41552 1a063a9b-81f0-0310-95a4-ce76da25c4cd --- wp-includes/ms-load.php | 11 +++++------ wp-includes/version.php | 2 +- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/wp-includes/ms-load.php b/wp-includes/ms-load.php index 7a00745a95..dc4df88869 100644 --- a/wp-includes/ms-load.php +++ b/wp-includes/ms-load.php @@ -268,7 +268,6 @@ function get_site_by_path( $domain, $path, $segments = null ) { * @since 4.6.0 * @access private * - * @global wpdb $wpdb WordPress database abstraction object. * @global WP_Network $current_site The current network. * @global WP_Site $current_blog The current site. * @@ -281,7 +280,7 @@ function get_site_by_path( $domain, $path, $segments = null ) { * Redirect URL if parts exist, but the request as a whole can not be fulfilled. */ function ms_load_current_site_and_network( $domain, $path, $subdomain = false ) { - global $wpdb, $current_site, $current_blog; + global $current_site, $current_blog; // If the network is defined in wp-config.php, we can simply use that. if ( defined( 'DOMAIN_CURRENT_SITE' ) && defined( 'PATH_CURRENT_SITE' ) ) { @@ -314,11 +313,11 @@ function ms_load_current_site_and_network( $domain, $path, $subdomain = false ) */ if ( ! $current_site = wp_cache_get( 'current_network', 'site-options' ) ) { // Are there even two networks installed? - $one_network = $wpdb->get_row( "SELECT * FROM $wpdb->site LIMIT 2" ); // [sic] - if ( 1 === $wpdb->num_rows ) { - $current_site = new WP_Network( $one_network ); + $networks = get_networks( array( 'number' => 2 ) ); + if ( count( $networks ) === 1 ) { + $current_site = array_shift( $networks ); wp_cache_add( 'current_network', $current_site, 'site-options' ); - } elseif ( 0 === $wpdb->num_rows ) { + } elseif ( empty( $networks ) ) { // A network not found hook should fire here. return false; } diff --git a/wp-includes/version.php b/wp-includes/version.php index 8624e12c3a..e7437b5c69 100644 --- a/wp-includes/version.php +++ b/wp-includes/version.php @@ -4,7 +4,7 @@ * * @global string $wp_version */ -$wp_version = '4.9-alpha-41717'; +$wp_version = '4.9-alpha-41718'; /** * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.