get_sites()WP 4.6.0

Получает сайты сети в виде массива массив с данными сайтов. В параметрах можно указать какие именно сайты мы хотим получить.

До версии 4.6. вместо этой функции использовалась wp_get_sites()

Если в сети более 10 000 сайтов, функция вернет пустой массив. Проверкой этого занимается функция wp_is_large_network(), результат которой можно изменить через фильтр: wp_is_large_network.

Работает на основе: WP_Site_Query::query()
Основа для: get_id_from_blogname()
1 раз — 0.000390 сек (быстро) | 50000 раз — 1.52764 сек (быстро)

Хуков нет.

Возвращает

Массив|int.

  • Массив объектов WP_Site.
  • Массив id сайтов, если fields = 'ids'
  • Количество сайтов, когда 'count' передан как переменная запроса.

Пример того, что может вернуть функция:

Array(
	[0] => WP_Site Object(
		[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] => WP_Site Object(
		[blog_id] => 2
		...
	)
)

Шаблон использования

$sites = get_sites( array(
	'fields'            => '',
	'ID'                => '',
	'site__in'          => '',
	'site__not_in'      => '',
	'number'            => 100,
	'offset'            => '',
	'no_found_rows'     => true,
	'orderby'           => 'id',
	'order'             => 'ASC',
	'network_id'        => 0,
	'network__in'       => array(),
	'network__not_in'   => array(),
	'domain'            => '',
	'domain__in'        => array(),
	'domain__not_in'    => array(),
	'path'              => '',
	'path__in'          => array(),
	'path__not_in'      => array(),
	'lang_id'           => 0,
	'lang__in'          => array(),
	'lang__not_in'      => array(),
	'public'            => null,
	'archived'          => null,
	'mature'            => null,
	'spam'              => null,
	'deleted'           => null,
	'search'            => '',
	'search_columns'    => array(),
	'count'             => false,
	'date_query'        => null, // See WP_Date_Query
	'update_site_cache' => true,
) );

foreach( $sites as $site ){
	// делаем что либо
}

Использование

get_sites( $args );
$args(строка/массив)
Параметры для получения сайтов в виде массива или строки. Полный список параметров смотрите в коде метода WP_Site_Query::__construct().
По умолчанию: array() (дефолтный массив данных)

Аргументы $args

site__in(массив)
Массив ID сайтов, которые нужно получить.
По умолчанию: ''
site__not_in(массив)
Массив ID сайтов, которые нужно исключить.
По умолчанию: ''
count(логический)
Ставим true когда нужно получить количество найденных сайтов, а не объекты данных этих сайтов.
По умолчанию: false
date_query(массив)
Фильтрация запроса по дате. См. WP_Date_Query.
По умолчанию: null
fields(строка)
Поля которые нужно вернуть в итоговых данных. Может быть: 'ids' - вернет только ID сайтов, '' - вернет все данные сайта.
По умолчанию: ''
ID(число)
ID сайта, когда нужно получить только этот сайт.
По умолчанию: ''
number(число)
Ограничение - максимальное количество сайтов которые нужно получить.
По умолчанию: 100
offset(число)

Верхний отступ при получении сайтов. Используется для построения LIMIT части запроса.

Например, если указать тут 10, и всего найдено 20 сайтов, то будут возвращены последние 10, а верхние 10 будут пропущены...
По умолчанию: 0

no_found_rows(логический)
Отключить подсчет найденных строк. Отключит SQL оператор SQL_CALC_FOUND_ROWS.
По умолчанию: true
orderby(строка|массив)

Колонка по которой сортировать полученные сайты. Может быть:

site__in
network__in
domain
last_updated
path
registered
network_id
domain_length
path_length
id

Также можно указать: false, array() или none, чтобы отключить часть запроса ORDER BY.

По умолчанию: 'id'

order(строка)
Направление сортировки: Может быть: ASC (123, абв) или DESC (321, бва).
По умолчанию: 'ASC'
network_id(число)
ID сети, сайты которых нужно получить.
По умолчанию: (ID текущей сети)
network__in(массив)
Массив ID сетей, сайты которых нужно получить.
По умолчанию: ''
network__not_in(массив)
Массив ID сетей, сайты которых нужно исключить.
По умолчанию: ''
domain(строка)
Домен сайта, который нужно получить.
По умолчанию: ''
domain__in(массив)
Массив доменов сайтов, которые нужно получить.
По умолчанию: ''
domain__not_in(массив)
Массив доменов сайтов, которые нужно исключить.
По умолчанию: ''
path(строка)
Путь, который должен содержать сайт.
По умолчанию: ''
path__in(массив)
Массив путей, которые могут содержать сайты.
По умолчанию: ''
path__not_in(массив)
Массив путей, которых не может быть у сайтов.
По умолчанию: ''
public(число)
Ограничить выборку только публичными сайтами. Со статусом 'public'. Может быть: 1 - только публичные сайты или 0 - не публичные сайты.
По умолчанию: null
archived(число)
Ограничить выборку только сайтами в архиве. Может быть: 1 или 0.
По умолчанию: null
mature(число)
Ограничить выборку только зрелыми (mature) сайтами. Может быть: 1 или 0.
По умолчанию: null
spam(число)
Ограничить выборку только сайтами со статусом СПАМ. Может быть: 1 или 0.
По умолчанию: null
deleted(число)
Ограничить выборку только удаленных сайтов. Может быть: 1 или 0.
По умолчанию: null
Поисковой запрос, по которому нужно искать сайты.
По умолчанию: ''
search_columns(массив)
Массив названий колонок по которым нужно производить поиск, если установлен параметр search. Может быть: 'domain' или 'path'.
По умолчанию: array()
lang_id(число) (с WP 4.8)
Ограничивает результат по ID языка.
lang__in(массив) (с WP 4.8)
Массив ID языков сайты с которыми нужно получить.
lang__not_in(массив) (с WP 4.8)
Массив с ID языков сайты с которыми нужно исключить из результата.
update_site_cache(логический)
Нужно ли сбросить кэш для найденных сайтов, если кэш для них уже установлен.
По умолчанию: false
update_site_meta_cache(true/false) (c WP 5.1)
Следует ли обновить кэш метаданных для найденных сайтов.
По умолчанию: true
meta_query(массив) (c WP 5.1)
Добавляет в SQL запрос условие выбора по метаполям (метаданным) сайтов. См. WP_Meta_Query.
По умолчанию: ''
meta_key(строка) (c WP 5.1)
Получить сайты с указанным тут мета ключом. Может использоваться в сочетании с $meta_value.
По умолчанию: ''
meta_value(строка) (c WP 5.1)
Получить сайты с указанным тут значением метаполя. Обычно используется в сочетании с $meta_key.
По умолчанию: ''
meta_type(строка) (c WP 5.1)
Тип данных, к которому будет приведен столбец $meta_value для сравнения. Возможные варианты: см. type в WP_Meta_Query.
По умолчанию: ''
meta_compare(строка) (c WP 5.1)
Оператор сравнения для указанного в $meta_value значения. Возможные варианты: см. compare в WP_Meta_Query.
По умолчанию: ''

Примеры

0

#1 Выведем название (домены) всех сайтов текущей сети

$sites = get_sites();

foreach( $sites as $site ){

	echo untrailingslashit( $home_scheme . '://' . $site->domain . $site->path );
	echo ' - '. get_blog_details( $site->blog_id )->blogname;
	echo '<br>';

}
0

#2 Что возвращает функция

$sites = get_sites();
$sites = Array
(
	[0] => WP_Site Object
		(
			[blog_id] => 1
			[domain] => site.com
			[path] => /
			[site_id] => 1
			[registered] => 2023-08-17 02:35:23
			[last_updated] => 0000-00-00 00:00:00
			[public] => 1
			[archived] => 0
			[mature] => 0
			[spam] => 0
			[deleted] => 0
			[lang_id] => 0
		)

	[1] => WP_Site Object
		(
			[blog_id] => 2
			[domain] => site.com
			[path] => /ru/
			[site_id] => 1
			[registered] => 2023-08-17 02:10:59
			[last_updated] => 2023-08-17 02:13:29
			[public] => 1
			[archived] => 0
			[mature] => 0
			[spam] => 0
			[deleted] => 0
			[lang_id] => 0
		)

)

Заметки

Список изменений

С версии 4.6.0 Введена.
С версии 4.8.0 Introduced the 'lang_id', 'lang__in', and 'lang__not_in' parameters.

Код get_sites() WP 6.5.2

function get_sites( $args = array() ) {
	$query = new WP_Site_Query();

	return $query->query( $args );
}