Перейти к содержимому

Получить список сайтов текущей сети

GET
/wp-json/wp2/site-manager/v1/sites
curl --request GET \
--url 'https://example.com/wp-json/wp2/site-manager/v1/sites?page=1&per_page=20&archived=0&deleted=0&spam=0&public=0&is_template=0&orderby=title&order=ASC' \
--header 'X-WP-Nonce: <X-WP-Nonce>'

Постраничный список сайтов текущей сети (get_sites + meta Site Manager). Не список сетей. Нужны manage_network или manage_options. Без manage_network PHP ограничивает выборку сайтами текущего пользователя (get_blogs_of_user → site__in); если сайтов нет — пустые items. Только multisite: иначе 400 not_multisite. Cookie + X-WP-Nonce или Application Password.

page
integer
default: 1

Номер страницы, с 1. PHP: max(1, page).

per_page
integer
default: 20 <= 100

Сайтов на странице. PHP: max(1, min(100, per_page ?: 20)).

search
string

Строка get_sites['search'] (домен/path ядра). Пустая или отсутствующая — без поиска.

status_id
integer

Фильтр по site meta wp2platform_site_status (term_id статуса Site Manager). Учитывается только > 0. Это не WP_Site->public.

category_id
integer

Фильтр по site meta wp2platform_site_categories (LIKE по id категории). Учитывается только > 0.

archived
integer
Allowed values: 0 1

Флаг WP_Site->archived для get_sites: 1 — только архивные, 0 — только неархивные. Нет параметра — без фильтра.

deleted
integer
Allowed values: 0 1

Флаг WP_Site->deleted в таблице блогов (ядро пометило сайт удалённым). Не «сущность удалена этой API».

spam
integer
Allowed values: 0 1

Флаг WP_Site->spam для get_sites: 1 — только спам, 0 — только не спам. Нет параметра — без фильтра по spam.

public
integer
Allowed values: 0 1

Флаг WP_Site->public (публичность/активность блога в сети). Не термин статуса Site Manager. 1 или 0; нет параметра — без фильтра.

is_template
integer
Allowed values: 0 1

Фильтр по site meta wp2platform_site_manager_is_template: 1 — шаблон для дублирования, 0 — обычный сайт.

orderby
string
Allowed values: title slug registered blog_id status_id id

Поле сортировки. blog_id/id — колонка id; registered — дата регистрации WP_Site; slug — path в get_sites; title и status_id сортируются в PHP после выборки (blogname / meta статуса). Неизвестный ключ → id. По умолчанию PHP берёт id. При title/status_id главный сайт сети поднимается первым.

order
string
Allowed values: ASC DESC

Направление сортировки. Иное значение PHP приводит к DESC. По умолчанию DESC.

include
string

Если строка содержит stats, в каждый SiteDto добавляется user_count (count_users на сайте). Иначе PHP поле не отдаёт. Другие токены игнорируются.

Страница сайтов текущей сети (items, total, page, per_page, total_pages).

Media typeapplication/json
object
items

Страница сайтов текущей сети после фильтров get_sites / PHP-сортировки.

Array<object>
object
blog_id

ID сайта в текущей сети (WP_Site->blog_id). Path {blog_id} тех же ручек — то же число.

integer
network_id

ID сети, которой принадлежит сайт (WP_Site->site_id). Это не blog_id и не CreateNetworkRequest.domain.

integer
title

Заголовок сайта — опция блога blogname (get_option на этом сайте). Не опция сети site_name.

string
slug

Адресный ярлык сайта. При SUBDOMAIN_INSTALL — поддомен относительно domain сети; иначе сегмент WP_Site->path без слэшей. PHP считает его в SiteSlugService::derive_slug_from_site.

string
domain

Хост сайта в таблице блогов (WP_Site->domain), без схемы https://.

string
path

Путь сайта в таблице блогов (WP_Site->path) со слэшами (часто / при поддоменах или /training/ при subdirectory). Это не путь файла Local Sync.

string
description

Подзаголовок сайта — опция блога blogdescription.

string
status_id

ID термина таксономии статусов Site Manager (site meta wp2platform_site_status). null, если статус не задан или id=0.

integer
nullable
status

Развёрнутый термин статуса Site Manager. null, если статус не задан. Не путать с флагом WP_Site->public.

object
id

Term_id статуса.

integer
name

Отображаемое имя статуса.

string
slug

Ярлык термина статуса (sanitize_title).

string
category_ids

ID терминов категорий Site Manager (site meta wp2platform_site_categories).

Array<integer>
categories

Развёрнутые категории сайта (id, name, slug). Во вложении SiteDto PHP не отдаёт parent.

Array<object>
object
id

Term_id категории сайтов (таксономия Site Manager, не рубрика записей).

integer
name

Отображаемое имя термина. В списке PHP может подменить дефолтные ярлыки через translate_default_term_label.

string
slug

Ярлык термина категории (sanitize_title при записи).

string
parent

Term_id родителя (WP_Term->parent); 0 — корень. В SiteDto.categories PHP это поле не кладёт.

integer
site_url

Публичный URL сайта (get_site_url(blog_id)).

string format: uri
admin_url

URL wp-admin этого сайта (get_admin_url(blog_id)), не /wp-admin/network/.

string format: uri
registered

Дата регистрации блога (WP_Site->registered), как хранит ядро.

string format: date-time
last_updated

Дата последнего обновления блога (WP_Site->last_updated).

string format: date-time
public

Флаг WP_Site->public (1 — публичный/активный, 0 — снят с публикации). Не термин статуса Site Manager.

integer
archived

Флаг WP_Site->archived (1 — в архиве, 0 — нет).

integer
deleted

Флаг WP_Site->deleted в таблице блогов (ядро пометило сайт удалённым). Не результат DELETE этой API.

integer
spam

Флаг WP_Site->spam (1 — помечен как спам).

integer
mature

Флаг WP_Site->mature.

integer
is_main_site

True, если это главный сайт сети (is_main_site(blog_id)). Его нельзя удалить, архивировать, деактивировать или сменить ему slug через API (main_site_forbidden / main_site_slug_forbidden).

boolean
is_template

True, если site meta wp2platform_site_manager_is_template равно 1 (сайт-шаблон для дублирования).

boolean
user_count

Число пользователей на сайте (count_users()['total_users']). PHP добавляет поле, только если в query include есть подстрока stats; иначе ключа нет.

integer
total

Число сайтов, попавших в фильтр (count get_sites или count после PHP-сортировки title/status_id).

integer
page

Запрошенная страница (max(1, page)).

integer
per_page

Размер страницы (max(1, min(100, per_page)), по умолчанию 20).

integer
total_pages

ceil(total / per_page).

integer
Example
{
"items": [
{
"blog_id": 5,
"network_id": 1,
"title": "Учебный проект",
"slug": "training",
"domain": "training.example.com",
"path": "/",
"description": "Песочница для курса",
"status_id": 12,
"status": {
"id": 12,
"name": "В работе",
"slug": "in-progress"
},
"category_ids": [
3
],
"categories": [
{
"id": 3,
"name": "Учебные проекты",
"slug": "training"
}
],
"site_url": "https://training.example.com/",
"admin_url": "https://training.example.com/wp-admin/",
"registered": "2024-03-01 10:15:00",
"last_updated": "2026-09-12 18:40:11",
"public": 1,
"archived": 0,
"deleted": 0,
"spam": 0,
"mature": 0,
"is_main_site": false,
"is_template": false
}
],
"total": 12,
"page": 1,
"per_page": 20,
"total_pages": 1
}

Not_multisite — установка не multisite.

Media typeapplication/json
object
code

Машинный код ошибки или события.

string
message

Текст сообщения (лог, PIN, сброс пароля).

string
data

Дополнительные данные WP_Error или лицензии.

object
Examplegenerated
{
"code": "example",
"message": "example",
"data": {}
}

Не аутентифицирован. DualRest: rest_forbidden (status 401), если нет cookie-сессии. Cookie + X-WP-Nonce или Application Password.

Media typeapplication/json
object
code

Машинный код ошибки или события.

string
message

Текст сообщения (лог, PIN, сброс пароля).

string
data

Дополнительные данные WP_Error или лицензии.

object
Examplegenerated
{
"code": "example",
"message": "example",
"data": {}
}

Нет права manage_network/manage_options или невалидный REST nonce (rest_cookie_invalid_nonce).

Media typeapplication/json
object
code

Машинный код ошибки или события.

string
message

Текст сообщения (лог, PIN, сброс пароля).

string
data

Дополнительные данные WP_Error или лицензии.

object
Examplegenerated
{
"code": "example",
"message": "example",
"data": {}
}