hosting
POST /v1/sites/{siteId}/wordpress/themes
Install a theme on a site's WordPress.
ការផ្ទៀងផ្ទាត់ភាពត្រឹមត្រូវ
បញ្ជូនសោ API ជា bearer token។ សោនេះត្រូវតែមានសិទ្ធិ sites.view។ សោដែលគ្មានសិទ្ធិនេះនឹងត្រូវបដិសេធដោយកូដ 403 មិនមែន 404 ទេ។
ចំនុចបញ្ចប់នេះមិនត្រូវការលេខសម្គាល់ស្ថាប័នទេ។ ពស័្ដកូនរបស់អ្នករួចហើយកំណត់អត្តសញ្ញាណស្ថាប័នដែលវាជាកម្មសិទ្ធិ ហើយការឆ្លើយតបគឺត្រូវបានកំណត់វិសាលភាពទៅតាមនោះ។
សាកល្បង
ជំនួសអ្វីមួយនៅក្នុងសញ្ញាពងក្រពើ < > ដោយប្រើតម្លៃផ្ទាល់ខ្លួនរបស់អ្នក ហើយជំនួសកន្លែងរក្សាទុកសោដោយប្រើសោចេញពីផ្ទាំងគ្រប់គ្រងរបស់អ្នក។
curl -X POST https://api.zinndigital.com/v1/sites/{siteId}/wordpress/themes \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-d '{ }'បានចូលគណនីរួចហើយមែនទេ? កុងសូល API ក្នុងផ្ទាំងគ្រប់គ្រងរបស់អ្នក បំពេញលេខសម្គាល់ស្ថាប័នពិតប្រាកដរបស់អ្នក និងសោផ្ទាល់ខ្លួនរបស់អ្នក ហើយដំណើរការសំណើទល់នឹង API ផ្ទាល់ ដូច្នេះអ្នកអាចមើលឃើញការឆ្លើយតបពិតប្រាកដ។ បើកចំណុចបញ្ចប់នេះក្នុងកុងសូល API
ព័ត៌មានលម្អិត
Installs a theme, from the **wordpress.org directory** by `slug` (what `searchWordPressThemeDirectory` returns) or from a **zip the customer uploads**. ⛔⛔ **This did not exist until W22-D, and its absence is the whole of the owner's complaint on 2026-08-16**: *"no way in this or the main site manager bit to add new theme or uplaod one"*. The platform could list, activate and delete a theme and had no way to put one on a site, so a customer could only ever choose among the three themes WordPress ships with — and could delete two of them. ⛔ Exactly one of `slug` and `zip` — never both, refused rather than resolved by precedence. ⛔ **`activate` defaults to `false` here and to `true` on the plugin path**, and the asymmetry is deliberate. Activating a plugin adds behaviour; activating a theme **replaces what every visitor sees**, immediately, on a live site. A customer uploading a theme to look at it must not have their shop re-skinned as a side effect of the upload. ⚠️ An uploaded zip is **the customer's own code running on their own site**, and we do not review it. It is size-capped at 96 MiB (themes run larger than plugins — commercial multipurpose themes ship demo imagery) and rejected unless it is a valid archive containing a single top-level directory whose `style.css` carries a `Theme Name:` header, which is what WordPress itself requires. Note that a theme is **not** validated the way a plugin is: a block theme can legitimately contain no PHP at all, so a PHP-file check would refuse valid modern themes. ⛔ **Fleet only.** this platform exposes no theme-install endpoint at any path, and its own control panel offers no install control on its Themes page either — both measured 2026-08-16. So this is refused on the managed hosting line, where `wp_theme_install` is `false`; the capability map on `getSiteWordPress` says so up front rather than letting the customer discover it by pressing the button. Requires `sites.view` and `sites.panel_access`.
ប៉ារ៉ាម៉ែត្រ
| ឈ្មោះ | ប្រភេទ | តម្រូវការ | តើវាជាអ្វី |
|---|---|---|---|
siteId (path) | Uuid | បាទ/ចាស | Site ID (UUIDv7). |
សំណើរបស់រាងកាយ
| ឈ្មោះ | ប្រភេទ | តម្រូវការ | តើវាជាអ្វី |
|---|---|---|---|
slug | string | ទេ | A 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". |
zip | string | ទេ | A base64-encoded theme zip. Present instead of a multipart upload because every other write on this API is JSON. |
activate | boolean | ទេ | Make this the site's active theme after installing. Defaults to `false` — see the asymmetry with the plugin path above. |
ផ្អាកដំណើរការ
| ឈ្មោះ | ប្រភេទ | តម្រូវការ | តើវាជាអ្វី |
|---|---|---|---|
data | SiteWordPressTheme[] | បាទ/ចាស | The installed themes. |
កំហុសដែលចំណុចបញ្ចប់នេះអាចបង្វិលត្រឡប់មកវិញ
401 · 403 · 404 · 413 · 422 · 429 · 503