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

Получить список встраиваемых пакетов

GET
/wp-json/wp2lms-pro/embed-packages/v1/packages
curl --request GET \
--url 'https://example.com/wp-json/wp2lms-pro/embed-packages/v1/packages?blog_id=1' \
--header 'X-WP-Nonce: <X-WP-Nonce>'

Список записей CPT wp2lms_embed_pkg на сайте blog_id: get_posts со статусами publish/draft/private, без пагинации (posts_per_page = -1), сортировка по title ASC. Каждая строка — package_payload (id, title, status, launch_url, meta). Это не фильтр по content_type и не каталог страниц WordPress: только пакеты. Корзина не входит. Пустой сайт — { "packages": [], "blog_id": N }. Нужно manage_network (multisite) или edit_pages (одиночный сайт). Cookie + X-WP-Nonce или Application Password.

blog_id
integer
>= 1

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

Example
1

Список пакетов текущего (или переключённого) блога. blog_id в теле — get_current_blog_id() после switch.

Media typeapplication/json
object
packages

Все пакеты блога (publish/draft/private), сортировка по title. Без пагинации.

Array<object>

Ответ package_payload — запись CPT плюс плоские поля из meta и полный объект meta.

object
id

ID записи CPT wp2lms_embed_pkg. Совпадает с {id} в path GET/PATCH/DELETE/content/materialize-pages.

integer
title

post_title пакета. После ingest PHP может заменить его на <title> launch-файла.

string
status

post_status пакета. REST принимает publish/draft/private; в ответе то, что лежит в БД.

string
content_type

Копия meta.content_type (web / scorm1.2 / scorm2004 / xapi или пусто).

string
content_tool

Копия meta.content_tool (детектор автора или пустая строка).

string
launch_path

Копия meta.launch_path — относительный HTML запуска, не URL.

string
launch_url

Абсолютный URL запуска (uploads baseurl + storage_rel + launch_path). Пусто, если содержимого нет.

string format: uri
activity_id

Копия meta.activity_id.

string
storage_rel

Копия meta.storage_rel — каталог в uploads, не URL.

string
is_multipage

Копия meta.is_multipage (true только для web без tool и ≥2 HTML).

boolean
pages

Копия meta.pages — индекс HTML внутри пакета, не страницы WordPress.

Array<object>
object
path

Относительный путь HTML внутри каталога пакета (posix, без ведущего /). Из PackagePagesIndex::scan.

string
title

Заголовок из <title> файла или имя без расширения, если тега нет.

string
meta

Полный массив post meta _wp2lms_embed_package (PackageMeta::get). У пакета без ingest — пустой объект.

object
content_type

Тип после ManifestPipeline — web, scorm1.2, scorm2004 или xapi. Пусто, пока содержимое не залито.

string
version

Версия из манифеста (для SCORM часто совпадает с content_type). Для web обычно пустая строка.

string
activity_id

XAPI activity id. Если парсер не дал — {home}wp2lms-embed-package/{id}.

string
launch_path

Относительный HTML запуска внутри storage (из манифеста или fallback index.html).

string
title

Заголовок из launch HTML / манифеста; PHP может перезаписать post_title пакета этим значением.

string
mastery_score

Mastery score из imsmanifest (SCORM), иначе null.

number
nullable
content_tool

Детектор автора: ispring, articulate_rise, articulate_storyline, articulate_presenter, captivate, elucidat или пустая строка.

string
storage_rel

Путь от uploads basedir, wp2lms-embed-packages/{id}/.

string
uploaded_at

Unix-время последней успешной записи содержимого (time() в finalize).

integer
is_multipage

True только для content_type=web без content_tool и ≥2 HTML в индексе.

boolean
pages

Индекс HTML (path+title), если пакет multipage; иначе [].

Array<object>
object
path

Относительный путь HTML внутри каталога пакета (posix, без ведущего /). Из PackagePagesIndex::scan.

string
title

Заголовок из <title> файла или имя без расширения, если тега нет.

string
blog_id

ID сайта, с которого отдан список (get_current_blog_id() после возможного switch_to_blog).

integer
Example
{
"packages": [
{
"id": 42,
"title": "Интерактивный урок",
"status": "publish",
"content_type": "web",
"content_tool": "",
"launch_path": "index.html",
"launch_url": "https://lms.example.com/wp-content/uploads/wp2lms-embed-packages/42/index.html",
"activity_id": "https://lms.example.com/wp2lms-embed-package/42",
"storage_rel": "wp2lms-embed-packages/42/",
"is_multipage": false,
"pages": [],
"meta": {
"content_type": "web",
"version": "",
"activity_id": "https://lms.example.com/wp2lms-embed-package/42",
"launch_path": "index.html",
"title": "Интерактивный урок",
"mastery_score": null,
"content_tool": "",
"storage_rel": "wp2lms-embed-packages/42/",
"uploaded_at": 1726252800,
"pages": [],
"is_multipage": false
}
}
],
"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_unknown_blog — в сети нет такого сайта или сайт принадлежит другой сети.

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
}
}