hosting

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

Install a theme on a site's WordPress.

همه نقاط پایانی hosting

همهٔ مستندات توسعه‌دهندگان

احراز هویت

یک کلید API را به عنوان یک توکن حامل ارسال کنید. این کلید باید دارای مجوز 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).

بدنه درخواست

نامنوعالزامیچیست
slugstringخیر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".
zipstringخیرA base64-encoded theme zip. Present instead of a multipart upload because every other write on this API is JSON.
activatebooleanخیرMake this the site's active theme after installing. Defaults to false — see the asymmetry with the plugin path above.

پاسخ

نامنوعالزامیچیست
dataSiteWordPressTheme[]بلهThe installed themes.

خطاهایی که این نقطه پایانی می‌تواند برگرداند

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