diff --git a/wp-admin/includes/class-wp-ms-sites-list-table.php b/wp-admin/includes/class-wp-ms-sites-list-table.php index d6569fbeee..73ce88989a 100644 --- a/wp-admin/includes/class-wp-ms-sites-list-table.php +++ b/wp-admin/includes/class-wp-ms-sites-list-table.php @@ -37,15 +37,13 @@ class WP_MS_Sites_List_Table extends WP_List_Table { $like_s = esc_sql( like_escape( $s ) ); - $large_network = false; // If the network is large and a search is not being performed, show only the latest blogs with no paging in order // to avoid expensive count queries. - if ( !$s && ( get_blog_count() >= 10000 ) ) { + if ( !$s && wp_is_large_network() ) { if ( !isset($_REQUEST['orderby']) ) $_GET['orderby'] = $_REQUEST['orderby'] = ''; if ( !isset($_REQUEST['order']) ) $_GET['order'] = $_REQUEST['order'] = 'DESC'; - $large_network = true; } $query = "SELECT * FROM {$wpdb->blogs} WHERE site_id = '{$wpdb->siteid}' "; @@ -104,13 +102,13 @@ class WP_MS_Sites_List_Table extends WP_List_Table { } // Don't do an unbounded count on large networks - if ( ! $large_network ) + if ( ! wp_is_large_network() ) $total = $wpdb->get_var( str_replace( 'SELECT *', 'SELECT COUNT( blog_id )', $query ) ); $query .= " LIMIT " . intval( ( $pagenum - 1 ) * $per_page ) . ", " . intval( $per_page ); $this->items = $wpdb->get_results( $query, ARRAY_A ); - if ( $large_network ) + if ( wp_is_large_network() ) $total = count($this->items); $this->set_pagination_args( array( diff --git a/wp-admin/includes/class-wp-ms-users-list-table.php b/wp-admin/includes/class-wp-ms-users-list-table.php index 67caa03b12..4ebec5e74b 100644 --- a/wp-admin/includes/class-wp-ms-users-list-table.php +++ b/wp-admin/includes/class-wp-ms-users-list-table.php @@ -32,7 +32,8 @@ class WP_MS_Users_List_Table extends WP_List_Table { 'fields' => 'all_with_meta' ); - $args['search'] = ltrim($args['search'], '*'); + if ( wp_is_large_network( 'users' ) ) + $args['search'] = ltrim( $args['search'], '*' ); if ( $role == 'super' ) { $logins = implode( "', '", get_super_admins() ); @@ -41,7 +42,7 @@ class WP_MS_Users_List_Table extends WP_List_Table { // If the network is large and a search is not being performed, show only the latest users with no paging in order // to avoid expensive count queries. - if ( !$usersearch && ( get_blog_count() >= 10000 ) ) { + if ( !$usersearch && wp_is_large_network( 'users' ) ) { if ( !isset($_REQUEST['orderby']) ) $_GET['orderby'] = $_REQUEST['orderby'] = 'id'; if ( !isset($_REQUEST['order']) ) diff --git a/wp-admin/includes/ms.php b/wp-admin/includes/ms.php index 8f4bf131bc..70fe4d5dac 100644 --- a/wp-admin/includes/ms.php +++ b/wp-admin/includes/ms.php @@ -775,4 +775,23 @@ var tb_closeImage = "../../wp-includes/js/thickbox/tb-close.png"; 10000, 'users', $count ); + } + + $count = get_blog_count(); + return apply_filters( 'wp_is_large_network', $count > 10000, 'sites', $count ); +} ?>