Функция get_sites() │ WP 4.6.0
Функция get_sites() возвращает список сайтов в текущей сети в виде массива, соответствующего заданным аргументам.
До версии 4.6 вместо этой функции использовалась wp_get_sites().
Если в сети более 10 000 сайтов, то функция вернет пустой массив. Это условие проверяется с помощью функции wp_is_large_network(), результат которой можно отфильтровать с помощью хуков.
Использует
Функция используется в WP_Site_Query::query().
Пример результата
Возвращаемое значение может быть следующим:
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
...
)
)
Как использовать get_sites()
$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, // Смотрите WP_Date_Query
'update_site_cache'=> true,
) );
foreach( $sites as $site ){
// Ваш код здесь
}
Параметры args
- site__in (array): Массив ID сайтов для получения.
- site__not_in (array): Массив ID сайтов для исключения.
- count (логический): Если true, будет возвращено количество найденных сайтов, а не их данные.
- date_query (array): Запрос фильтрации по дате.
- fields (string): Поля, которые нужно вернуть. Можно использовать 'ids' для возврата только ID сайтов.
- ID (number): ID сайта, когда нужно получить только этот сайт.
- number (number): Максимальное количество возвращаемых сайтов.
- offset (number): Смещение для получения сайтов. Например, если указать 10, то первые 10 сайтов будут пропущены.
- no_found_rows (логический): Отключает подсчет найденных строк.
- orderby (row|array): Столбец для сортировки полученных сайтов.
- order (string): Направление сортировки: ASC (возрастание) или DESC (убывание).
- network_id (number): ID сети, сайты которой нужно получить.
- domain (string): Домен сайта, который нужно получить.
Пример использования
Чтобы отобразить домены всех сайтов в текущей сети:
$sites = get_sites();
foreach( $sites as $site ){
echo $site->domain . $site->path;
echo ' - ' . get_blog_details( $site->blog_id )->blogname;
echo '
';
}
Примечания
- См.
WP_Site_Query::parse_query()для дополнительной информации.
Изменения
- В версии 4.6.0 была добавлена данная функция.
- В версии 4.8.0 были добавлены параметры 'lang_id', 'langin' и 'langnot_in'.
Код функции get_sites
Функция определена в файле wp-includes/ms-site.php:
function get_sites( $args = array() ) {
$query = new WP_Site_Query();
return $query->query( $args );
}
Эта функция полезна для работы с многосайтовыми установками WordPress и позволяет эффективно управлять сайтами в сети.