wp_get_sites

The timeline below displays how wordpress function wp_get_sites has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 5.7

/**
 * Return an array of sites for a network or networks.
 *
 * @since 3.7.0
 * @deprecated 4.6.0 Use get_sites()
 * @see get_sites()
 *
 * @param array $args {
 *     Array of default arguments. Optional.
 *
 *     @type int|int[] $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 installation is considered "large" via wp_is_large_network(). Otherwise,
 *                 an associative array of WP_Site data as arrays.
 */
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;
}

WordPress Version: 5.4

/**
 * Return an array of sites for a network or networks.
 *
 * @since 3.7.0
 * @deprecated 4.6.0 Use get_sites()
 * @see get_sites()
 *
 * @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 installation is considered "large" via wp_is_large_network(). Otherwise,
 *                 an associative array of WP_Site data as arrays.
 */
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;
}

WordPress Version: 4.9

/**
 * Return an array of sites for a network or networks.
 *
 * @since 3.7.0
 * @deprecated 4.6.0 Use get_sites()
 * @see get_sites()
 *
 * @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 installation 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())
{
    _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);
    // 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;
    } 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;
}

WordPress Version: 4.8

/**
 * 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.0', '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;
    } 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;
}

WordPress Version: 4.6

/**
 * 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.0', '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) {
        $_site = get_site($_site);
        $results[] = $_site->to_array();
    }
    return $results;
}

WordPress Version: 4.4

/**
 * 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);
    $query = "SELECT * FROM {$wpdb->blogs} WHERE 1=1 ";
    if (isset($args['network_id']) && (is_array($args['network_id']) || is_numeric($args['network_id']))) {
        $network_ids = implode(',', wp_parse_id_list($args['network_id']));
        $query .= "AND site_id IN ({$network_ids}) ";
    }
    if (isset($args['public'])) {
        $query .= $wpdb->prepare("AND public = %d ", $args['public']);
    }
    if (isset($args['archived'])) {
        $query .= $wpdb->prepare("AND archived = %d ", $args['archived']);
    }
    if (isset($args['mature'])) {
        $query .= $wpdb->prepare("AND mature = %d ", $args['mature']);
    }
    if (isset($args['spam'])) {
        $query .= $wpdb->prepare("AND spam = %d ", $args['spam']);
    }
    if (isset($args['deleted'])) {
        $query .= $wpdb->prepare("AND deleted = %d ", $args['deleted']);
    }
    if (isset($args['limit']) && $args['limit']) {
        if (isset($args['offset']) && $args['offset']) {
            $query .= $wpdb->prepare("LIMIT %d , %d ", $args['offset'], $args['limit']);
        } else {
            $query .= $wpdb->prepare("LIMIT %d ", $args['limit']);
        }
    }
    $site_results = $wpdb->get_results($query, ARRAY_A);
    return $site_results;
}

WordPress Version: 4.3

/**
 * Return an array of sites for a network or networks.
 *
 * @since 3.7.0
 *
 * @global wpdb $wpdb
 *
 * @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);
    $query = "SELECT * FROM {$wpdb->blogs} WHERE 1=1 ";
    if (isset($args['network_id']) && (is_array($args['network_id']) || is_numeric($args['network_id']))) {
        $network_ids = implode(',', wp_parse_id_list($args['network_id']));
        $query .= "AND site_id IN ({$network_ids}) ";
    }
    if (isset($args['public'])) {
        $query .= $wpdb->prepare("AND public = %d ", $args['public']);
    }
    if (isset($args['archived'])) {
        $query .= $wpdb->prepare("AND archived = %d ", $args['archived']);
    }
    if (isset($args['mature'])) {
        $query .= $wpdb->prepare("AND mature = %d ", $args['mature']);
    }
    if (isset($args['spam'])) {
        $query .= $wpdb->prepare("AND spam = %d ", $args['spam']);
    }
    if (isset($args['deleted'])) {
        $query .= $wpdb->prepare("AND deleted = %d ", $args['deleted']);
    }
    if (isset($args['limit']) && $args['limit']) {
        if (isset($args['offset']) && $args['offset']) {
            $query .= $wpdb->prepare("LIMIT %d , %d ", $args['offset'], $args['limit']);
        } else {
            $query .= $wpdb->prepare("LIMIT %d ", $args['limit']);
        }
    }
    $site_results = $wpdb->get_results($query, ARRAY_A);
    return $site_results;
}

WordPress Version: 3.7

/**
 * Return an array of sites for a network or networks.
 *
 * @since 3.7.0
 *
 * @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);
    $query = "SELECT * FROM {$wpdb->blogs} WHERE 1=1 ";
    if (isset($args['network_id']) && (is_array($args['network_id']) || is_numeric($args['network_id']))) {
        $network_ids = implode(',', wp_parse_id_list($args['network_id']));
        $query .= "AND site_id IN ({$network_ids}) ";
    }
    if (isset($args['public'])) {
        $query .= $wpdb->prepare("AND public = %d ", $args['public']);
    }
    if (isset($args['archived'])) {
        $query .= $wpdb->prepare("AND archived = %d ", $args['archived']);
    }
    if (isset($args['mature'])) {
        $query .= $wpdb->prepare("AND mature = %d ", $args['mature']);
    }
    if (isset($args['spam'])) {
        $query .= $wpdb->prepare("AND spam = %d ", $args['spam']);
    }
    if (isset($args['deleted'])) {
        $query .= $wpdb->prepare("AND deleted = %d ", $args['deleted']);
    }
    if (isset($args['limit']) && $args['limit']) {
        if (isset($args['offset']) && $args['offset']) {
            $query .= $wpdb->prepare("LIMIT %d , %d ", $args['offset'], $args['limit']);
        } else {
            $query .= $wpdb->prepare("LIMIT %d ", $args['limit']);
        }
    }
    $site_results = $wpdb->get_results($query, ARRAY_A);
    return $site_results;
}