WordPress как на ладони
wordpress jino

get_sites() WP 4.6.0

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

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

Работает на основе: WP_Site_Query()

Хуков нет.

Возвращает

Массив. Массив объектов сайтов.

  • array() - пустой массив, когда в сети находится больше 10 000 сайтов. Такая установка считается "большой". Проверкой этого занимается функция wp_is_large_network(), результат которой можно изменить через фильтр: wp_is_large_network.

  • Ассоциативный массив - массив, элементами которого будут массивы с данными каждого сайта сети.

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

Array(
	[0] => WP_Site Object(
		[blog_id] => 1
		[site_id] => 1
		[domain] => site.ru
		[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
		...
	)
)

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

get_sites( $args );

Шаблон

$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 ){
	// делаем что либо
}
$args(строка/массив)
Параметры для получения сайтов в виде массива или строки.
По умолчанию: array()

Возможные аргументы для $args

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

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

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

no_found_rows(логический)
Отключить подсчет найденных строк. Отключит SQL оператор SQL_CALC_FOUND_ROWS.
По умолчанию: true
orderby(строка|массив)
Колонка по которой сортировать полученные сайты. Может быть: id, domain, path, network_id, last_updated, registered, domain_length, path_length, site__in, network__in.
Также можно указать: 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(строка)
Поисковой запрос, по которому нужно искать сайты.
По умолчанию: ''
search_columns(массив)
Массив названий колонок по которым нужно производить поиск, если установлен параметр search. Может быть: 'domain' или 'path'.
По умолчанию: array()
update_site_cache(логический)
Нужно ли сбросить кэш для найденных сайтов, если кэш для них уже установлен.
По умолчанию: false
lang_id(число)
Ограничивает результат по ID языка. С версии 4.8
lang__in(массив)
Массив ID языков сайты с которыми нужно получить. С версии 4.8
lang__not_in(массив)
Массив с ID языков сайты с которыми нужно исключить из результата. С версии 4.8

Примеры

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

$sites = get_sites();
foreach( $sites as $site ){
	switch_to_blog( $site->blog_id );
	// делаем что-либо

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

	restore_current_blog();
}

Код get sites: wp-includes/ms-blogs.php WP 4.8.2

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

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

Cвязанные функции

Из раздела: Мультисайт

get_sites Комментариев нет

Здравствуйте, !

Ваш комментарий