Функция get_sites() в WordPress: описание, примеры использования, параметры.

Функция 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 и позволяет эффективно управлять сайтами в сети.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *