hosting

POST /v1/sites/{siteId}/wordpress/plugins

Install a plugin on a site's WordPress.

所有 hosting 端点

身份验证

请将 API 密钥作为 bearer 令牌发送。该密钥必须具有 sites.view 权限;缺少该权限的密钥将被拒绝并返回 403 状态码,而非 404。

此端点不需要组织 ID。您的密钥已用于识别其所属的组织,且响应范围也仅限于该组织。

免费试用

将尖括号中的内容替换为您自己的值,并将键占位符替换为您仪表板中的一个键。

curl -X POST https://api.zinndigital.com/v1/sites/{siteId}/wordpress/plugins \
  -H "Authorization: Bearer zdk_live_…" \
  -H "Content-Type: application/json" \
  -d '{  }'

已登录?您仪表板中的 API 控制台会自动填入您真实的组织 ID 和您自己的密钥,并针对实时 API 运行请求,以便您查看实际的响应。 在 API 控制台中打开此端点

详细信息

Installs a plugin and, by default, activates it. Either from the **wordpress.org directory** by `slug` (what `searchWordPressPluginDirectory` returns), or from a **zip the customer uploads**. ⛔ Exactly one of `slug` and `zip` — never both. A request carrying both is refused `422` rather than resolved by precedence, because a caller that sent the wrong one would otherwise install something it did not ask for and be told it succeeded. Idempotent: a plugin already present is activated rather than reinstalled, and an upload of a plugin that is already there replaces it in place. Nothing is ever removed — use `deleteSiteWordPressPlugin` for that. ⚠️ An uploaded zip is **the customer's own code running on their own site**, and we do not review it. It is size-capped and rejected unless it is a valid archive containing a single top-level directory with a PHP plugin header, which is what WordPress itself requires — not a security review, and not presented as one. Refused `422` when the package type does not carry `wp_plugins`, or when WordPress is not installed. `404` for a site with no vendor hosting package. Requires `sites.view` and `sites.panel_access`.

参数

名称类型必填内容简介
siteId (path)UuidSite ID (UUIDv7).

请求正文

名称类型必填内容简介
slugstringA wordpress.org directory slug. Lower-case, digits and hyphens — the directory's own alphabet, enforced here so a path separator or a URL can never reach the box as a "slug".
zipstringA base64-encoded plugin zip. Present instead of a multipart upload because every other write on this API is JSON and one exception would need its own auth, size and error handling.
activatebooleanActivate after installing. `false` puts the files in place and leaves the plugin switched off — what a staged rollout of something risky wants. Deliberately not the default: "in…

响应

名称类型必填内容简介
dataSiteWordPressPlugin[]The installed plugins.
stack_cache_installedboolean⛔ **Cannot be derived from `data`.** this platform excludes its own server-side cache plugin from the listing, so a client deriving this flag from the rows would answer "not ins…

此端点可能返回的错误

401 · 403 · 404 · 409 · 413 · 422 · 429 · 503