Получить сборку
const url = 'https://example.com/wp-json/wp2lms/static-builder/v1/builds/128?blog_id=1';const options = {method: 'GET', headers: {'X-WP-Nonce': '<X-WP-Nonce>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://example.com/wp-json/wp2lms/static-builder/v1/builds/128?blog_id=1' \ --header 'X-WP-Nonce: <X-WP-Nonce>'Одна сборка CPT wp2lms_static_build по path {id}: полный BuildService::serialize (config, page_ids, статус, логи, view/zip если completed и файлы на диске).
Это не запуск и не изменение конфига. Несуществующий id или другой post_type — 404 wp2lms_static_builder_not_found. id ≤ 0 — 400 invalid_id.
Нужно manage_network или edit_pages. Cookie + X-WP-Nonce или Application Password.
Authorizations
Заголовок раздела «Authorizations»Parameters
Заголовок раздела «Parameters»Path Parameters
Заголовок раздела «Path Parameters»ID записи CPT wp2lms_static_build (то же число, что StaticBuild.id). ≤ 0 — 400 invalid_id.
Example
128Query Parameters
Заголовок раздела «Query Parameters»ID сайта мультисети, на котором читать/писать сборки. Необязательно: PHP берёт get_current_blog_id(). ≤ 0 — 400 invalid_blog. Чужой/несуществующий сайт — 404 blog_not_found. На одиночном сайте обычно не передают.
Example
1Responses
Заголовок раздела «Responses»Текущее состояние сборки (serialize).
object
ID записи CPT wp2lms_static_build.
BuildStatus->value: new, pending, building, completed, error, stopped, rebuild, build, stopping. После create обычно new; после async run — pending.
True для completed, error, stopped.
object
ACF courseName в сохранённой сборке.
ACF apiType; пустое PHP подменяет на local.
ACF courseID (get_course_id), может быть пустой строкой.
ID связанного CPT wp2lms_courses (meta ssb_course_id). 0 если не привязана.
Число версии из ACF (get_version_number), по умолчанию 1.
ACF courseComment.
Package или live (get_export_mode; иное/пустое → package).
ID страниц в порядке пакета; первый = главная.
ID главной страницы (get_main_page), обычно page_ids[0].
Избранная сборка курса (meta ssb_is_primary). Не больше одной на связанный курс; звезда в метабоксе «Сборки».
True, если хотя бы у одной выбранной страницы есть термин таксономии секций. Сайтовая опция через REST не задаётся.
Сайтовая настройка Static Builder disableAutoAdditionData (не поле тела REST).
Для package — сайтовая notIncludeMediaFilesBuild; для live PHP всегда false.
Для package — saveExternalFiles (null → true); для live всегда false (внешние файлы не качаются).
Номер ревизии сборки из мета (get_revision_number).
Журнал шагов (get_logs(true) — новые сверху). После create обычно [].
object
Unix-время записи шага сборки (0, если в мета нет time).
Уровень записи лога сборки (info, если в мета нет level).
Текст шага генерации пакета.
URL просмотра (index.html / live). Не null только при status=completed и существующем view на диске; иначе null (в т.ч. сразу после create). Для live и package — если файл есть.
URL ZIP-пакета. Не null только при completed и существующем архиве (типично package / scorm / xapi). Для live ZIP часто отсутствует — тогда null.
URL каталога {uploads}/wp2lms-static/{id}/. Всегда строка, даже если файлов ещё нет.
Сырая ссылка wp-admin на карточку сборки (get_edit_post_link(..., 'raw')).
ID сайта, на котором лежит сборка (get_current_blog_id после switch_to_blog).
Example
{ "id": 128, "status": "completed", "terminal": true, "config": { "course_name": "Основы информационной безопасности", "api_type": "scorm", "course_id": "course-infosec-101", "version": 1, "course_comment": "Пакет для LMS", "export_mode": "package" }, "page_ids": [ 42, 57 ], "main_page_id": 42, "use_sections_in_menu": true, "disable_auto_addition_data": false, "not_include_media_files_build": false, "save_external_files": true, "revision": 3, "logs": [ { "time": 1726221720, "level": "info", "message": "Build completed" } ], "view_url": "https://pulse.example.com/wp-content/uploads/wp2lms-static/128/index.html", "zip_url": "https://pulse.example.com/wp-content/uploads/wp2lms-static/128/Site_128_1.3.zip", "files_url": "https://pulse.example.com/wp-content/uploads/wp2lms-static/128/", "edit_url": "https://pulse.example.com/wp-admin/post.php?post=128&action=edit", "blog_id": 1}Wp2lms_static_builder_invalid_id — id ≤ 0; invalid_blog — blog_id ≤ 0.
object
Машинный код WP_Error (например wp2lms_static_builder_busy, rest_forbidden, invalid_nonce).
Человекочитаемое сообщение ошибки из PHP / WordPress REST.
Обычно { status: <HTTP-код> }. Если status нет, ядро REST часто отдаёт 500.
object
Example
{ "code": "wp2lms_static_builder_busy", "message": "Build is currently building and cannot be updated.", "data": { "status": 409 }}Не аутентифицирован. DualRest: rest_forbidden (status 401), если нет cookie-сессии. Cookie + X-WP-Nonce или Application Password.
object
Машинный код WP_Error (например wp2lms_static_builder_busy, rest_forbidden, invalid_nonce).
Человекочитаемое сообщение ошибки из PHP / WordPress REST.
Обычно { status: <HTTP-код> }. Если status нет, ядро REST часто отдаёт 500.
object
Example
{ "code": "wp2lms_static_builder_busy", "message": "Build is currently building and cannot be updated.", "data": { "status": 409 }}Нет права manage_network (мультисайт) или edit_pages (одиночный сайт); невалидный REST nonce rest_cookie_invalid_nonce.
object
Машинный код WP_Error (например wp2lms_static_builder_busy, rest_forbidden, invalid_nonce).
Человекочитаемое сообщение ошибки из PHP / WordPress REST.
Обычно { status: <HTTP-код> }. Если status нет, ядро REST часто отдаёт 500.
object
Example
{ "code": "wp2lms_static_builder_busy", "message": "Build is currently building and cannot be updated.", "data": { "status": 409 }}Wp2lms_static_builder_not_found — нет поста этого CPT; blog_not_found — сайта нет или он в другой сети.
object
Машинный код WP_Error (например wp2lms_static_builder_busy, rest_forbidden, invalid_nonce).
Человекочитаемое сообщение ошибки из PHP / WordPress REST.
Обычно { status: <HTTP-код> }. Если status нет, ядро REST часто отдаёт 500.
object
Example
{ "code": "wp2lms_static_builder_busy", "message": "Build is currently building and cannot be updated.", "data": { "status": 409 }}