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

Установить связь страницы с пакетом

PUT
/wp-json/wp2lms-pro/embed-packages/v1/pages/{page_id}/package
curl --request PUT \
--url 'https://example.com/wp-json/wp2lms-pro/embed-packages/v1/pages/128/package?blog_id=1' \
--header 'Content-Type: application/json' \
--header 'X-WP-Nonce: <X-WP-Nonce>' \
--data '{ "enabled": true, "package_id": 42, "alpine": false, "launch_path": "about.html" }'

Записывает meta подмены страницы пакетом (PagePackageReplace::save). page_id — ID страницы WordPress, не blog_id и не ID пакета. Не страница — 404 embed_packages_page_not_found. enabled необязателен, по умолчанию true. Если enabled=true, нужен существующий package_id (CPT wp2lms_embed_pkg), иначе 400 embed_packages_invalid_package. alpine по умолчанию false. launch_path — относительный HTML внутри пакета; если ключ не передан, PHP не трогает сохранённый путь (null в save). Пустая строка пути сбрасывает override. Это не загрузка файлов пакета и не создание страницы. Нужно manage_network (multisite) или edit_pages. Cookie + X-WP-Nonce или Application Password.

page_id
required
integer
>= 1

ID страницы WordPress (post_type=page), к которой привязан embed-пакет. Не blog_id и не ID пакета. Если запись не страница — 404 embed_packages_page_not_found.

Example
128
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
enabled

Включить подмену. Необязательно: если ключа нет, PHP ставит true. При true нужен валидный package_id.

boolean
package_id

ID CPT wp2lms_embed_pkg. Обязателен, если enabled=true (иначе 400 embed_packages_invalid_package). При enabled=false можно 0.

integer
alpine

Alpine-обвязка. Необязательно, по умолчанию false (! empty). При enabled=false PHP сбрасывает meta alpine.

boolean
launch_path

Относительный .html/.htm внутри пакета. Если ключ не передан — сохранённый путь не меняется. Пустая/небезопасная строка сбрасывает override.

string
Example
{
"enabled": true,
"package_id": 42,
"alpine": false,
"launch_path": "about.html"
}

Привязка сохранена. Тело — та же форма, что у GET; если пакет ещё не resolved, effective_launch_path будет пустой строкой.

Media typeapplication/json
object
page_id

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

integer
enabled

Включена ли подмена вывода (_wp2_embed_replace_with_package = «1»).

boolean
package_id

ID CPT-пакета из meta страницы (0, если не задан).

integer
alpine

Просить Alpine-обвязку при подмене (_wp2_embed_replace_alpine).

boolean
launch_path

Override пути запуска на странице (_wp2_embed_replace_launch_path), без дефолта пакета. Пусто — нет override.

string
effective_launch_path

Фактический HTML запуска: override страницы или meta.launch_path пакета. У GET при unresolved — только override; у PUT при unresolved — пустая строка.

string
resolved

ID пакета, если подмена включена, пакет published и launch-файл читается с диска; иначе JSON null. Это не объект URL.

integer
nullable
Example
{
"page_id": 128,
"enabled": true,
"package_id": 42,
"alpine": false,
"launch_path": "about.html",
"effective_launch_path": "about.html",
"resolved": 42
}

Embed_packages_invalid_package — enabled=true, но package_id ≤ 0 или это не CPT пакета; embed_packages_invalid_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
}
}

Не аутентифицирован. 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_page_not_found — нет страницы WordPress с этим page_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
}
}