Multisite: Deprecate wp_get_sites()
Defer to the new `get_sites()` replacement, offering fresh (...or cached) `WP_Site` objects via the new `WP_Site_Query`. Props flixos90. Fixes #36994. git-svn-id: https://develop.svn.wordpress.org/trunk@37653 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
53ec2e744d
commit
6da085cfe4
@ -438,3 +438,76 @@ function get_admin_users_for_domain( $sitedomain = '', $path = '' ) {
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an array of sites for a network or networks.
|
||||
*
|
||||
* @since 3.7.0
|
||||
* @deprecated 4.6.0
|
||||
* @see get_sites()
|
||||
*
|
||||
* @global wpdb $wpdb WordPress database abstraction object.
|
||||
*
|
||||
* @param array $args {
|
||||
* Array of default arguments. Optional.
|
||||
*
|
||||
* @type int|array $network_id A network ID or array of network IDs. Set to null to retrieve sites
|
||||
* from all networks. Defaults to current network ID.
|
||||
* @type int $public Retrieve public or non-public sites. Default null, for any.
|
||||
* @type int $archived Retrieve archived or non-archived sites. Default null, for any.
|
||||
* @type int $mature Retrieve mature or non-mature sites. Default null, for any.
|
||||
* @type int $spam Retrieve spam or non-spam sites. Default null, for any.
|
||||
* @type int $deleted Retrieve deleted or non-deleted sites. Default null, for any.
|
||||
* @type int $limit Number of sites to limit the query to. Default 100.
|
||||
* @type int $offset Exclude the first x sites. Used in combination with the $limit parameter. Default 0.
|
||||
* }
|
||||
* @return array An empty array if the install is considered "large" via wp_is_large_network(). Otherwise,
|
||||
* an associative array of site data arrays, each containing the site (network) ID, blog ID,
|
||||
* site domain and path, dates registered and modified, and the language ID. Also, boolean
|
||||
* values for whether the site is public, archived, mature, spam, and/or deleted.
|
||||
*/
|
||||
function wp_get_sites( $args = array() ) {
|
||||
global $wpdb;
|
||||
|
||||
_deprecated_function( __FUNCTION__, '4.6', 'get_sites()' );
|
||||
|
||||
if ( wp_is_large_network() )
|
||||
return array();
|
||||
|
||||
$defaults = array(
|
||||
'network_id' => $wpdb->siteid,
|
||||
'public' => null,
|
||||
'archived' => null,
|
||||
'mature' => null,
|
||||
'spam' => null,
|
||||
'deleted' => null,
|
||||
'limit' => 100,
|
||||
'offset' => 0,
|
||||
);
|
||||
|
||||
$args = wp_parse_args( $args, $defaults );
|
||||
|
||||
// Backwards compatibility
|
||||
if( is_array( $args['network_id'] ) ){
|
||||
$args['network__in'] = $args['network_id'];
|
||||
$args['network_id'] = null;
|
||||
}
|
||||
|
||||
if( is_numeric( $args['limit'] ) ){
|
||||
$args['number'] = $args['limit'];
|
||||
$args['limit'] = null;
|
||||
}
|
||||
|
||||
// Make sure count is disabled.
|
||||
$args['count'] = false;
|
||||
|
||||
$_sites = get_sites( $args );
|
||||
|
||||
$results = array();
|
||||
|
||||
foreach ( $_sites as $_site ) {
|
||||
$results[] = (array) get_site( $_site );
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
@ -2424,76 +2424,6 @@ function wp_is_large_network( $using = 'sites' ) {
|
||||
return apply_filters( 'wp_is_large_network', $count > 10000, 'sites', $count );
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Return an array of sites for a network or networks.
|
||||
*
|
||||
* @since 3.7.0
|
||||
*
|
||||
* @global wpdb $wpdb WordPress database abstraction object.
|
||||
*
|
||||
* @param array $args {
|
||||
* Array of default arguments. Optional.
|
||||
*
|
||||
* @type int|array $network_id A network ID or array of network IDs. Set to null to retrieve sites
|
||||
* from all networks. Defaults to current network ID.
|
||||
* @type int $public Retrieve public or non-public sites. Default null, for any.
|
||||
* @type int $archived Retrieve archived or non-archived sites. Default null, for any.
|
||||
* @type int $mature Retrieve mature or non-mature sites. Default null, for any.
|
||||
* @type int $spam Retrieve spam or non-spam sites. Default null, for any.
|
||||
* @type int $deleted Retrieve deleted or non-deleted sites. Default null, for any.
|
||||
* @type int $limit Number of sites to limit the query to. Default 100.
|
||||
* @type int $offset Exclude the first x sites. Used in combination with the $limit parameter. Default 0.
|
||||
* }
|
||||
* @return array An empty array if the install is considered "large" via wp_is_large_network(). Otherwise,
|
||||
* an associative array of site data arrays, each containing the site (network) ID, blog ID,
|
||||
* site domain and path, dates registered and modified, and the language ID. Also, boolean
|
||||
* values for whether the site is public, archived, mature, spam, and/or deleted.
|
||||
*/
|
||||
function wp_get_sites( $args = array() ) {
|
||||
global $wpdb;
|
||||
|
||||
if ( wp_is_large_network() )
|
||||
return array();
|
||||
|
||||
$defaults = array(
|
||||
'network_id' => $wpdb->siteid,
|
||||
'public' => null,
|
||||
'archived' => null,
|
||||
'mature' => null,
|
||||
'spam' => null,
|
||||
'deleted' => null,
|
||||
'limit' => 100,
|
||||
'offset' => 0,
|
||||
);
|
||||
|
||||
$args = wp_parse_args( $args, $defaults );
|
||||
|
||||
// Backwards compatibility
|
||||
if( is_array( $args['network_id'] ) ){
|
||||
$args['network__in'] = $args['network_id'];
|
||||
$args['network_id'] = null;
|
||||
}
|
||||
|
||||
if( is_numeric( $args['limit'] ) ){
|
||||
$args['number'] = $args['limit'];
|
||||
$args['limit'] = null;
|
||||
}
|
||||
|
||||
// Make sure count is disabled.
|
||||
$args['count'] = false;
|
||||
|
||||
$_sites = get_sites( $args );
|
||||
|
||||
$results = array();
|
||||
|
||||
foreach ( $_sites as $_site ) {
|
||||
$results[] = (array) get_site( $_site );
|
||||
}
|
||||
|
||||
return $results;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves a list of reserved site on a sub-directory Multisite install.
|
||||
*
|
||||
|
@ -581,6 +581,7 @@ class Tests_Multisite_Site extends WP_UnitTestCase {
|
||||
* public sites from the current network.
|
||||
*
|
||||
* @ticket 14511
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
function test_wp_get_sites_with_default_arguments() {
|
||||
self::factory()->blog->create( array( 'site_id' => 2 ) );
|
||||
@ -590,6 +591,8 @@ class Tests_Multisite_Site extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* No sites should match a query that specifies an invalid network ID.
|
||||
*
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
function test_wp_get_sites_with_invalid_network_id() {
|
||||
$this->assertcount( 0, wp_get_sites( array( 'network_id' => 999 ) ) );
|
||||
@ -597,6 +600,8 @@ class Tests_Multisite_Site extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* A network ID of null should query for all public sites on all networks.
|
||||
*
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
function test_wp_get_sites_with_network_id_null() {
|
||||
self::factory()->blog->create( array( 'site_id' => 2 ) );
|
||||
@ -606,6 +611,8 @@ class Tests_Multisite_Site extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* Expect only sites on the specified network ID to be returned.
|
||||
*
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
function test_wp_get_sites_with_specific_network_id() {
|
||||
self::factory()->blog->create( array( 'site_id' => 2 ) );
|
||||
@ -615,6 +622,8 @@ class Tests_Multisite_Site extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* Expect sites from both networks if both network IDs are specified.
|
||||
*
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
function test_wp_get_sites_with_multiple_network_ids() {
|
||||
self::factory()->blog->create( array( 'site_id' => 2 ) );
|
||||
@ -624,6 +633,8 @@ class Tests_Multisite_Site extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* Queries for public or non public sites should work across all networks if network ID is null.
|
||||
*
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
function test_wp_get_sites_with_public_meta_on_all_networks() {
|
||||
self::factory()->blog->create( array( 'site_id' => 2, 'meta' => array( 'public' => 0 ) ) );
|
||||
@ -634,6 +645,8 @@ class Tests_Multisite_Site extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* If a network ID is specified, queries for public sites should be restricted to that network.
|
||||
*
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
function test_wp_get_sites_with_public_meta_restrict_to_one_network() {
|
||||
self::factory()->blog->create( array( 'site_id' => 1, 'meta' => array( 'public' => 0 ) ) );
|
||||
@ -644,6 +657,8 @@ class Tests_Multisite_Site extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* Test the limit and offset arguments for wp_get_sites when multiple sites are available.
|
||||
*
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
function test_wp_get_sites_limit_offset() {
|
||||
// Create 2 more sites (in addition to the default one)
|
||||
@ -661,6 +676,8 @@ class Tests_Multisite_Site extends WP_UnitTestCase {
|
||||
|
||||
/**
|
||||
* Expect 0 sites when using an offset larger than the total number of sites.
|
||||
*
|
||||
* @expectedDeprecated wp_get_sites
|
||||
*/
|
||||
function test_wp_get_sites_offset_greater_than_available_sites() {
|
||||
$this->assertCount( 0, wp_get_sites( array( 'offset' => 20 ) ) );
|
||||
|
Loading…
Reference in New Issue
Block a user