wp_get_sites()WP 3.7.0

Устарела с версии 4.6.0. Больше не поддерживается и может быть удалена. Используйте get_sites().

Получает массив с данными всех сайтов сети или сетей.

Хуков нет.

Возвращает

Массив[].

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

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

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

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
		...
	)
)

Каждое значение в массиве каждого сайта, является строкой, даже когда там находится число. Поэтому при проверках чисел, например blog_id используйте операторы сравнения == или !=, а не === или !==.

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

$sites = wp_get_sites( $args );
$args(массив)

Массив параметров, по которым будут получены сайты сети. Понимает следующие ключи массива:

  • network_id(int|array)
    ID сети, сайты которой нужно получить. Можно указать несколько ID в массиве.
    По умолчанию: null (текущая сеть)

  • public(int)
    Какие сайты получить: публичные или нет.
    По умолчанию: null (любые)

  • archived(int)
    Какие сайты получить: которые в архиве или нет.
    По умолчанию: null (любые)

  • mature(int)
    Какие сайты получить: запущенные или нет.
    По умолчанию: null (любые)

  • spam(int)
    Какие сайты получить: которые в спаме или нет.
    По умолчанию: null (любые)

  • deleted(int)
    Какие сайты получить: которые удалены (в корзине) или «живые».
    По умолчанию: null (любые)

  • limit(int)
    Ограничение на количество получаемых сайтов.
    По умолчанию: 100

  • offset(int)
    Верхний отступ (срез) от количества сайтов. Используется в комбинации с параметром limit.
    По умолчанию: 0

По умолчанию: array()

Примеры

0

#1 Получим все сайты сети в виде массива

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

print_r( $array );

/* Выведет 
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
	)
)
*/

Заметки

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

С версии 3.7.0 Введена.
Устарела с 4.6.0 Use get_sites()

Код wp_get_sites() WP 6.4.3

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;
}