Changeset 25445
- Timestamp:
- 09/14/2013 09:12:26 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/ms-deprecated.php
r25276 r25445 162 162 */ 163 163 function get_blog_list( $start = 0, $num = 10, $deprecated = '' ) { 164 _deprecated_function( __FUNCTION__, '3.0' );164 _deprecated_function( __FUNCTION__, '3.0', 'wp_get_sites()' ); 165 165 166 166 global $wpdb; -
trunk/src/wp-includes/ms-functions.php
r25397 r25445 1988 1988 return apply_filters( 'wp_is_large_network', $count > 10000, 'sites', $count ); 1989 1989 } 1990 1991 1992 /** 1993 * Return an array of sites for a network. 1994 * 1995 * @see wp_is_large_network() Returns an empty array if the install is considered large. 1996 * 1997 * @since 3.7.0 1998 * 1999 * @param array $args { 2000 * Array of arguments. Optional. 2001 * 2002 * @type int|array 'network_id' A network ID or array of network IDs. Set to null to retrieve sites 2003 * from all networks. Defaults to current network ID. 2004 * @type int 'public' Retrieve public or non-public sites. Default null, for any. 2005 * @type int 'archived' Retrieve archived or non-archived sites. Default null, for any. 2006 * @type int 'mature' Retrieve mature or non-mature sites. Default null, for any. 2007 * @type int 'spam' Retrieve spam or non-spam sites. Default null, for any. 2008 * @type int 'deleted' Retrieve deleted or non-deleted sites. Default null, for any. 2009 * @type int 'limit' Number of sites to limit the query to. Default 100. 2010 * } 2011 * 2012 * @return array An array of site data 2013 */ 2014 function wp_get_sites( $args = array() ) { 2015 global $wpdb; 2016 2017 if ( wp_is_large_network() ) 2018 return array(); 2019 2020 $defaults = array( 2021 'network_id' => $wpdb->siteid, 2022 'public' => null, 2023 'archived' => null, 2024 'mature' => null, 2025 'spam' => null, 2026 'deleted' => null, 2027 'limit' => 100, 2028 ); 2029 2030 $args = wp_parse_args( $args, $defaults ); 2031 2032 $query = "SELECT * FROM $wpdb->blogs WHERE 1=1 "; 2033 2034 if ( isset( $args['network_id'] ) && ( is_array( $args['network_id'] ) || is_numeric( $args['network_id'] ) ) ) { 2035 $network_ids = array_map('intval', (array) $args['network_id'] ); 2036 $network_ids = implode( ',', $network_ids ); 2037 $query .= "AND site_id IN ($network_ids) "; 2038 } 2039 2040 if ( isset( $args['public'] ) ) 2041 $query .= $wpdb->prepare( "AND public = %d ", $args['public'] ); 2042 2043 if ( isset( $args['archived'] ) ) 2044 $query .= $wpdb->prepare( "AND archived = %d ", $args['archived'] ); 2045 2046 if ( isset( $args['mature'] ) ) 2047 $query .= $wpdb->prepare( "AND mature = %d ", $args['mature'] ); 2048 2049 if ( isset( $args['spam'] ) ) 2050 $query .= $wpdb->prepare( "AND spam = %d ", $args['spam'] ); 2051 2052 if ( isset( $args['deleted'] ) ) 2053 $query .= $wpdb->prepare( "AND deleted = %d ", $args['deleted'] ); 2054 2055 if ( isset( $args['limit'] ) ) 2056 $query .= $wpdb->prepare( "LIMIT %d ", $args['limit'] ); 2057 2058 $site_results = $wpdb->get_results( $query, ARRAY_A ); 2059 2060 return $site_results; 2061 } -
trunk/tests/phpunit/tests/ms.php
r25409 r25445 1030 1030 } 1031 1031 1032 /** 1033 * @ticket 14511 1034 */ 1035 function test_wp_get_sites() { 1036 global $wpdb; 1037 $this->factory->blog->create_many( 2, array( 'site_id' => 2, 'meta' => array( 'public' => 1 ) ) ); 1038 $this->factory->blog->create_many( 3, array( 'site_id' => 3, 'meta' => array( 'public' => 0 ) ) ); 1039 1040 // Expect no sites when passed an invalid network_id 1041 $this->assertCount( 0, wp_get_sites( array( 'network_id' => 0 ) ) ); 1042 $this->assertCount( 0, wp_get_sites( array( 'network_id' => 4 ) ) ); 1043 1044 // Expect 1 site when no network_id is specified - defaults to current network. 1045 $this->assertCount( 1, wp_get_sites() ); 1046 // Expect 6 sites when network_id = null. 1047 $this->assertCount( 6, wp_get_sites( array( 'network_id' => null ) ) ); 1048 1049 // Expect 1 site with a network_id of 1, 2 for network_id 2, 3 for 3 1050 $this->assertCount( 1, wp_get_sites( array( 'network_id' => 1 ) ) ); 1051 $this->assertCount( 2, wp_get_sites( array( 'network_id' => 2 ) ) ); 1052 $this->assertCount( 3, wp_get_sites( array( 'network_id' => 3 ) ) ); 1053 1054 // Expect 6 sites when public is null (across all networks) 1055 $this->assertCount( 6, wp_get_sites( array( 'public' => null, 'network_id' => null ) ) ); 1056 1057 // Expect 3 sites when public is 1 1058 $this->assertCount( 3, wp_get_sites( array( 'public' => 1, 'network_id' => null ) ) ); 1059 1060 // Expect 2 sites when public is 1 and network_id is 2 1061 $this->assertCount( 2, wp_get_sites( array( 'network_id' => 2, 'public' => 1 ) ) ); 1062 1063 // Expect no sites when public is set to 0 and network_id is not 3 1064 $this->assertCount( 0, wp_get_sites( array( 'network_id' => 1, 'public' => 0 ) ) ); 1065 1066 // Test public + network_id = 3 1067 $this->assertCount( 0, wp_get_sites( array( 'network_id' => 3, 'public' => 1 ) ) ); 1068 $this->assertCount( 3, wp_get_sites( array( 'network_id' => 3, 'public' => 0 ) ) ); 1069 } 1070 1032 1071 } 1033 1072
Note: See TracChangeset
for help on using the changeset viewer.