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

Создать сеть

POST
/wp-json/wp2/multi-network/v1/networks
curl --request POST \
--url https://example.com/wp-json/wp2/multi-network/v1/networks \
--header 'Content-Type: application/json' \
--header 'X-WP-Nonce: <X-WP-Nonce>' \
--data '{ "domain": "network2.example.com", "path": "/", "site_name": "Главный сайт сети", "network_name": "Сеть два", "user_id": 1, "clone_network_id": 1, "options_to_clone": [ "site_name", "admin_email" ] }'

Создаёт новую сеть WordPress (wp-multi-network add_network) на установке, где модуль Multi-Network committed и доступна функция add_network. Это не создание блога внутри текущей сети: появляется отдельная сеть со своим корневым сайтом. Обязательны domain, path и site_name (иначе 400 missing_fields). Пустые строки после trim считаются отсутствующими. domain PHP приводит к нижнему регистру и вырезает пробелы. Можно не передавать user_id — супер-админ новой сети, по умолчанию текущий пользователь; несуществующий id — 403 network_user. clone_network_id — с какой сети копировать network-meta; по умолчанию текущая сеть запроса (get_current_network_id). options_to_clone — какие опции копировать; если не передать, PHP берёт ключи network_options_to_copy() (admin_email, allowedthemes, site_admins и т.д.). network_name после создания пишется в опцию сети site_name; это не то же самое, что site_name (blogname корневого сайта). Нужно право create_networks. Cookie + X-WP-Nonce или Application Password.

Media typeapplication/json
object
domain
required

Хост новой сети без https:// (например network2.example.com). Обязательно. PHP: trim, lowercase, пробелы вырезаются. Пустое значение — 400 missing_fields. Уже занятая пара domain+path — ошибка insert_network network_exists (REST обычно 500).

string
path
required

Путь новой сети, не путь файла. Обычно / для домена целиком. Обязательно. add_network приводит к нижнему регистру, без пробелов и с / на конце. Это не поле Local Sync.

string
site_name
required

Заголовок корневого сайта новой сети (blogname). Обязательно. Не путать с network_name — то имя самой сети в network options.

string
network_name

Отображаемое имя сети. Необязательно. Если передать непустое значение, PHP после add_network делает update_network_option(…, ‘site_name’, …). Если не передать — остаётся дефолт wp-multi-network (часто «New Network»).

string
user_id

ID пользователя, которого назначить администратором новой сети. Необязательно: по умолчанию текущий пользователь REST. Пользователь должен существовать, иначе add_network вернёт 403 network_user. Не означает «создать сеть от имени другого клиента Studio».

integer
clone_network_id

ID сети-источника, с которой копировать network-meta. Необязательно: по умолчанию сеть текущего запроса (get_current_network_id). В PHP уходит в аргумент add_network clone_network.

integer
options_to_clone

Имена network-опций, которые копировать с clone_network_id. Необязательно. Если не передать, PHP подставляет ключи network_options_to_copy(): admin_email, allowedthemes, site_admins, upload_filetypes, welcome_email и др. Пустой массив — ничего не копировать (поле передано). Не выдумывать ключи: только то, что принимает wp-multi-network.

Array<string>
Example
{
"domain": "network2.example.com",
"path": "/",
"site_name": "Главный сайт сети",
"network_name": "Сеть два",
"user_id": 1,
"clone_network_id": 1,
"options_to_clone": [
"site_name",
"admin_email"
]
}

Сеть создана. Тело — format_network: id, domain/path, корневой сайт, URL админки сети и сайта.

Media typeapplication/json
object
network_id

ID сети WordPress (WP_Network->id). В path GET …/networks/{network_id} — то же число.

integer
domain

Хост сети, как в таблице wp_site (без схемы). Совпадает с тем, что передали при создании, после lowercasing.

string
path

Путь сети с завершающим слэшем (add_network делает trailingslashit). Обычно /.

string
site_id

ID корневого сайта этой сети (WP_Network->site_id), не ID сети.

integer
site_name

Blogname корневого сайта (get_blog_option site_id, blogname). Это заголовок сайта, не опция сети.

string
network_name

Опция сети site_name (get_network_option). Если при создании передали network_name — оно здесь.

string
admin_url

URL сетевой админки {scheme}://{domain}{path}wp-admin/network/. scheme = https при is_ssl().

string format: uri
site_url

URL корневого сайта сети {scheme}://{domain}{path}.

string format: uri
Example
{
"network_id": 2,
"domain": "network2.example.com",
"path": "/",
"site_id": 5,
"site_name": "Главный сайт сети",
"network_name": "Сеть два",
"admin_url": "https://network2.example.com/wp-admin/network/",
"site_url": "https://network2.example.com/"
}

Missing_fields — нет domain, path или site_name (пустая строка после trim).

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": {}
}

Нет права create_networks, невалидный REST nonce, либо add_network: network_user / network_super_admin (указанный user_id не существует).

Media typeapplication/json
object
code

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

string
message

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

string
data

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

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

WP_Error из insert_network/add_network без HTTP-status в data (часто network_exists — такая сеть уже есть, network_empty — пустой domain). WordPress REST отдаёт такие ошибки как 500.

Media typeapplication/json
object
code

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

string
message

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

string
data

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

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

Multi_network_not_ready — модуль не committed или нет функции add_network.

Media typeapplication/json
object
code

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

string
message

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

string
data

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

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