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

Создать страницы WordPress из пакета

POST
/wp-json/wp2lms-pro/embed-packages/v1/packages/{id}/materialize-pages
curl --request POST \
--url 'https://example.com/wp-json/wp2lms-pro/embed-packages/v1/packages/42/materialize-pages?blog_id=1' \
--header 'Content-Type: application/json' \
--header 'X-WP-Nonce: <X-WP-Nonce>' \
--data '{ "page_status": "publish", "alpine": false }'

Для многостраничного web-пакета (meta.is_multipage и непустой индекс meta.pages) создаёт новые записи post_type=page и сразу включает подмену (PagePackageReplace::save). Это не заливка ZIP и не обновление уже существующих страниц: всегда wp_insert_post. SCORM/xAPI и одностраничный web — 500 not_multipage. page_status необязателен, по умолчанию publish; допустимы publish / draft / private, иное → publish. alpine необязателен, по умолчанию false (! empty). Заголовок/slug страницы берутся из индекса HTML пакета (title файла или имя без расширения). Не пакет — 404 embed_packages_not_found. Если после обхода индекса ни одной страницы не вышло — 500 no_pages_created. Нужно manage_network (multisite) или edit_pages. Cookie + X-WP-Nonce или Application Password.

id
required
integer
>= 1

ID записи CPT wp2lms_embed_pkg (поле id в payload). Не blog_id и не page_id. Несуществующий id или другой post_type — 404 embed_packages_not_found.

Example
42
blog_id
integer
>= 1

ID сайта сети (switch_to_blog). Необязательно: по умолчанию текущий блог запроса. Не ID пакета и не page_id. Минимум 1; на одиночном сайте должен совпадать с текущим — иначе 400 embed_packages_invalid_blog. В сети неизвестный сайт или сайт другой сети — 404 embed_packages_unknown_blog.

Example
1
Media typeapplication/json
object
page_status

Post_status создаваемых страниц WordPress. Необязательно, по умолчанию publish. Иное → publish.

string
Allowed values: publish draft private
alpine

Писать meta _wp2_embed_replace_alpine на созданных страницах. Необязательно, по умолчанию false (! empty).

boolean
Example
{
"page_status": "publish",
"alpine": false
}

Страницы созданы и привязаны к пакету. Тело — pages[] плюс package_id и blog_id.

Media typeapplication/json
object
pages

Созданные страницы WordPress с привязкой к пакету.

Array<object>
object
page_id

ID созданной страницы WordPress (post_type=page). Не ID пакета.

integer
title

Заголовок страницы из индекса HTML пакета (или имя файла).

string
slug

post_name — sanitize_title от имени HTML без расширения.

string
launch_path

Относительный HTML в пакете, записанный в meta страницы как override запуска.

string
package_id

ID пакета из path (тот же {id}).

integer
blog_id

ID сайта после switch (get_current_blog_id()).

integer
Example
{
"pages": [
{
"page_id": 128,
"title": "Главная",
"slug": "index",
"launch_path": "index.html"
},
{
"page_id": 129,
"title": "О курсе",
"slug": "about",
"launch_path": "about.html"
}
],
"package_id": 42,
"blog_id": 1
}

Embed_packages_invalid_blog — blog_id < 1 или на одиночном сайте не совпадает с текущим.

Media typeapplication/json
object
code

Код WP_Error (get_error_code()), например embed_packages_not_found.

string
message

Текст WP_Error (get_error_message()).

string
data

Data WP_Error. Обычно { "status": 404 }. Ошибки ingest/materialize без status WordPress REST отдаёт как 500.

object
Example
{
"code": "embed_packages_not_found",
"message": "Package not found.",
"data": {
"status": 404
}
}

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

Media typeapplication/json
object
code

Код WP_Error (get_error_code()), например embed_packages_not_found.

string
message

Текст WP_Error (get_error_message()).

string
data

Data WP_Error. Обычно { "status": 404 }. Ошибки ingest/materialize без status WordPress REST отдаёт как 500.

object
Example
{
"code": "embed_packages_not_found",
"message": "Package not found.",
"data": {
"status": 404
}
}

Нет права manage_network (multisite) или edit_pages (одиночный сайт), либо невалидный REST nonce (rest_cookie_invalid_nonce).

Media typeapplication/json
object
code

Код WP_Error (get_error_code()), например embed_packages_not_found.

string
message

Текст WP_Error (get_error_message()).

string
data

Data WP_Error. Обычно { "status": 404 }. Ошибки ingest/materialize без status WordPress REST отдаёт как 500.

object
Example
{
"code": "embed_packages_not_found",
"message": "Package not found.",
"data": {
"status": 404
}
}

Embed_packages_not_found — нет пакета с этим id; embed_packages_unknown_blog — неизвестный blog_id в сети.

Media typeapplication/json
object
code

Код WP_Error (get_error_code()), например embed_packages_not_found.

string
message

Текст WP_Error (get_error_message()).

string
data

Data WP_Error. Обычно { "status": 404 }. Ошибки ingest/materialize без status WordPress REST отдаёт как 500.

object
Example
{
"code": "embed_packages_not_found",
"message": "Package not found.",
"data": {
"status": 404
}
}

WP_Error без HTTP-status — not_multipage (пакет не web-multipage / нет индекса), no_pages_created, invalid_package, либо сбой wp_insert_post. WordPress REST отдаёт такие ошибки как 500.

Media typeapplication/json
object
code

Код WP_Error (get_error_code()), например embed_packages_not_found.

string
message

Текст WP_Error (get_error_message()).

string
data

Data WP_Error. Обычно { "status": 404 }. Ошибки ingest/materialize без status WordPress REST отдаёт как 500.

object
Example
{
"code": "embed_packages_not_found",
"message": "Package not found.",
"data": {
"status": 404
}
}