wp_get_sites( array $args = array() ): array[]

This function has been deprecated. Use get_sites() instead.

Return an array of sites for a network or networks.

Description

See also

Parameters

$argsarrayoptional
Array of default arguments. Optional.
  • network_id int|int[]
    A network ID or array of network IDs. Set to null to retrieve sites from all networks. Defaults to current network ID.
  • public int
    Retrieve public or non-public sites. Default null, for any.
  • archived int
    Retrieve archived or non-archived sites. Default null, for any.
  • mature int
    Retrieve mature or non-mature sites. Default null, for any.
  • spam int
    Retrieve spam or non-spam sites. Default null, for any.
  • deleted int
    Retrieve deleted or non-deleted sites. Default null, for any.
  • limit int
    Number of sites to limit the query to. Default 100.
  • offset int
    Exclude the first x sites. Used in combination with the $limit parameter. Default 0.

Default:array()

Return

array[] An empty array if the installation is considered "large" via wp_is_large_network() . Otherwise, an associative array of WP_Site data as arrays.

More Information

If wp_is_large_network() returns TRUE, wp_get_sites() will return an empty array. By default wp_is_large_network() returns TRUE if there are 10,000 or more sites in your network. This can be filtered using the wp_is_large_network filter.

Each site’s array is composed entirely of string values, even for numeric values. This means that == or !=, not === or !==, should be used to compare [blog_id] to get_current_blog_id(), which returns an integer value.

Source

function wp_get_sites( $args = array() ) {
	_deprecated_function( __FUNCTION__, '4.6.0', 'get_sites()' );

	if ( wp_is_large_network() )
		return array();

	$defaults = array(
		'network_id' => get_current_network_id(),
		'public'     => null,
		'archived'   => null,
		'mature'     => null,
		'spam'       => null,
		'deleted'    => null,
		'limit'      => 100,
		'offset'     => 0,
	);

	$args = wp_parse_args( $args, $defaults );

	// Backward 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;
	} elseif ( ! $args['limit'] ) {
		$args['number'] = 0;
		$args['limit'] = null;
	}

	// Make sure count is disabled.
	$args['count'] = false;

	$_sites  = get_sites( $args );

	$results = array();

	foreach ( $_sites as $_site ) {
		$_site = get_site( $_site );
		$results[] = $_site->to_array();
	}

	return $results;
}

Changelog

VersionDescription
4.6.0Use get_sites()
3.7.0Introduced.

User Contributed Notes

  1. Skip to note 2 content

    Basic Example

    if you specify null to the ‘network_id’ then all site infomation in the network are returned.

    <?php 
    $args = array(
        'network_id' => null,
        'public'     => null,
        'archived'   => null,
        'mature'     => null,
        'spam'       => null,
        'deleted'    => null,
        'limit'      => 100,
        'offset'     => 0,
    ); 
    $array = wp_get_sites( $args );
    print_r ($array);
    ?>

    Example of the array returned:

    Array(
        [0] => Array(
            [blog_id] => 1
            [site_id] => 1
            [domain] => example.com
            [path] => /
            [registered] => 2013-11-08 17:56:46
            

    Last updated

    => 2013-11-08 18:57:19 [public] => 1 [archived] => 0 [mature] => 0 [spam] => 0 [deleted] => 0 [lang_id] => 0 ) [1] => Array( [blog_id] => 2 [site_id] => 1 [domain] => example.com [path] => /examplesubsite/ [registered] => 2013-11-08 18:07:22

    Last updated

    => 2013-11-08 18:13:40 [public] => 1 [archived] => 0 [mature] => 0 [spam] => 0 [deleted] => 0 [lang_id] => 0 ) )

    If you specified ‘1’ to the ‘network_id’ then the array that include only the first element must be returned.

You must log in before being able to contribute a note or feedback.