get_sites

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

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

Хуков нет.

Возвращает

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

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

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

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

get_sites( $args );

Шаблон

$args = array(
	'fields'            => '',
	'ID'                => '',
	'site__in'          => '',
	'site__not_in'      => '',
	'number'            => 100,
	'offset'            => '',
	'no_found_rows'     => true,
	'orderby'           => 'id',
	'order'             => 'ASC',
	'network_id'        => 0,
	'network__in'       => '',
	'network__not_in'   => '',
	'domain'            => '',
	'domain__in'        => '',
	'domain__not_in'    => '',
	'path'              => '',
	'path__in'          => '',
	'path__not_in'      => '',
	'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,
);

$sites = get_sites( $args );

foreach( $sites as $site ){
	// делаем что либо
}
$args(строка/массив)
Параметры для получения сайтов в виде массива или строки.
По умолчанию: array()

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


  • site__in (массив)


  • site__not_in (массив)


  • count (логический)


  • date_query (массив)


  • fields (строка)


  • ID (число)


  • number (число)


  • offset (число)


  • no_found_rows (логический)


  • orderby (строка|массив)


  • order (строка)


  • network_id (число)


  • network__in (массив)


  • network__not_in (массив)


  • domain (строка)


  • domain__in (массив)


  • domain__not_in (массив)


  • path (строка)


  • path__in (массив)


  • path__not_in (массив)


  • public (число)


  • archived (число)


  • mature (число)


  • spam (число)


  • deleted (число)


  • search (строка)


  • search_columns (массив)


  • update_site_cache (логический)

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

Примеры

#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();
}

Код из


wp-includes/ms-blogs.php

WP 4.7.2

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

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

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *