get_sites( string|array $args = array() )
Retrieves a list of sites matching requested arguments.
Contents
Description Description
See also See also
Parameters Parameters
- $args
-
(string|array) (Optional) Array or query string of site query parameters.
- 'site__in'
(array) Array of site IDs to include. - 'site__not_in'
(array) Array of site IDs to exclude. - 'count'
(bool) Whether to return a site count (true) or array of site objects. Default false. - 'date_query'
(array) Date query clauses to limit sites by. See WP_Date_Query. Default null. - 'fields'
(string) Site fields to return. Accepts 'ids' (returns an array of site IDs) or empty (returns an array of complete site objects). - 'ID'
(int) A site ID to only return that site. - 'number'
(int) Maximum number of sites to retrieve. Default 100. - 'offset'
(int) Number of sites to offset the query. Used to build LIMIT clause. Default 0. - 'no_found_rows'
(bool) Whether to disable theSQL_CALC_FOUND_ROWS
query. Default true. - 'orderby'
(string|array) Site status or array of statuses. Accepts 'id', 'domain', 'path', 'network_id', 'last_updated', 'registered', 'domain_length', 'path_length', 'site__in' and 'network__in'. Also accepts false, an empty array, or 'none' to disableORDER BY
clause. Default 'id'. - 'order'
(string) How to order retrieved sites. Accepts 'ASC', 'DESC'. Default 'ASC'. - 'network_id'
(int) Limit results to those affiliated with a given network ID. If 0, include all networks. Default 0. - 'network__in'
(array) Array of network IDs to include affiliated sites for. - 'network__not_in'
(array) Array of network IDs to exclude affiliated sites for. - 'domain'
(string) Limit results to those affiliated with a given domain. - 'domain__in'
(array) Array of domains to include affiliated sites for. - 'domain__not_in'
(array) Array of domains to exclude affiliated sites for. - 'path'
(string) Limit results to those affiliated with a given path. - 'path__in'
(array) Array of paths to include affiliated sites for. - 'path__not_in'
(array) Array of paths to exclude affiliated sites for. - 'public'
(int) Limit results to public sites. Accepts '1' or '0'. - 'archived'
(int) Limit results to archived sites. Accepts '1' or '0'. - 'mature'
(int) Limit results to mature sites. Accepts '1' or '0'. - 'spam'
(int) Limit results to spam sites. Accepts '1' or '0'. - 'deleted'
(int) Limit results to deleted sites. Accepts '1' or '0'. - 'lang_id'
(int) Limit results to a language ID. - 'lang__in'
(array) Array of language IDs to include affiliated sites for. - 'lang__not_in'
(array) Array of language IDs to exclude affiliated sites for. - 'search'
(string) Search term(s) to retrieve matching sites for. - 'search_columns'
(array) Array of column names to be searched. Accepts 'domain' and 'path'. - 'update_site_cache'
(bool) Whether to prime the cache for found sites. Default true.
Default value: array()
- 'site__in'
Return Return
(array|int) List of WP_Site objects, a list of site ids when 'fields' is set to 'ids', or the number of sites when 'count' is passed as a query var.
Source Source
File: wp-includes/ms-site.php
function get_sites( $args = array() ) { $query = new WP_Site_Query(); return $query->query( $args ); }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
4.8.0 | Introduced the 'lang_id', 'lang__in', and 'lang__not_in' parameters. |
4.6.0 | Introduced. |
User Contributed Notes User Contributed Notes
You must log in before being able to contribute a note or feedback.
Also good to know… get_sites now returns an OBJECT not a named array.
A code example that may help:
Expand full source codeCollapse full source code
Beware, using
get_sites()
as a drop-in forwp_get_sites()
may not produce results as expected.PHP Fatal error: Cannot use object of type WP_Site as array in /path/to/code/that/uses/get_sites/method/file.php
It’s true that
get_sites()
returns an array, however, it produces an array of sites as objects. This is different fromwp_get_sites()
, which used to produce a multidimensional array of the sites, with their properties in a secondary array dimension (simply an array of site arrays with that site’s properties).If you’re attempting to loop through the sites to get the properties of each site with get_sites(), you’ll need to convert each site object to an array using
get_object_vars( object )
http://www.php.net/manual/en/function.get-object-vars.php.See the example below noting the use of get_object_vars on line three:
This should return the following list of sites:
Site ID/Name: 1 / SiteNameOne
Site ID/Name: 2 / SiteNameTwo
Site ID/Name: 3 / SiteNameThree
wp_get_sites() ‘limit’ argument is now ‘number’.
wp_get_sites() converted this to $args[‘number’] for you, get_sites() does not appear to handle this parameter name conversion for you.
Reference: https://developer.wordpress.org/reference/functions/wp_get_sites/