Kadence
New in v3.9.0. Kadence stores its customizer settings as theme_mods, structured objects that reference a 9-slot global color palette (palette1…palette9). EMCP Tools exposes a curated allowlist of those settings over two dispatcher tools, so an agent can read and adjust your site’s theme design directly. Registers only when Kadence is the active theme.
For discovering and inserting Kadence’s own blocks and Design Library patterns (a separate pack, independent of the active theme), see Block builder catalogs on the Gutenberg blocks page.
How it works
Section titled “How it works”Both tools take { operation, arguments }. Omit operation to get back the list of available operations for that tool.
emcp-tools/kadence-read
Section titled “emcp-tools/kadence-read”Operation: get-settings. Reads curated Kadence settings with their value plus type/label/group/shape metadata. Colors reference the global palette slugs palette1…palette9 rather than raw hex, so read global_palette first to know what those slots currently mean.
Arguments: group (optional — palette, colors, typography, layout, buttons, or header-footer) or keys (optional array of specific setting keys). Omit both to return everything on the allowlist.
emcp-tools/kadence-write
Section titled “emcp-tools/kadence-write”Operation: update-settings. Writes settings by key as theme_mods. Any key not on the allowlist is reported back in skipped, not rejected outright. Values are structured objects, read the shape from get-settings first rather than guessing the field layout.
Arguments: values — an object of { key: value } pairs.
The allowlist
Section titled “The allowlist”| Key | Group | Shape |
|---|---|---|
global_palette | palette | { palette: [{ color, slug, name }, …9 slots], second: [...], third: [...] } — everything else references these as "palette1"…"palette9". |
link_color | colors | { highlight: "palette1", "highlight-alt": "palette2", "highlight-alt2": "palette9", style: "standard" } |
base_font | typography | { size:{desktop,tablet?,mobile?}, sizeType:"px", lineHeight:{desktop}, family, google:bool, weight, variant, color:"palette4" } |
heading_font | typography | { family:"inherit"|"Font Name", google:bool } — the global heading family. |
h1_font…h6_font | typography | Same shape as base_font, one per heading level. |
content_width | layout | { size:1290, unit:"px" } |
page_layout | layout | "normal" | "fullwidth" | "left-sidebar" | "right-sidebar" |
buttons_background | buttons | { color:"palette1", hover:"palette2" } |
buttons_typography | buttons | { size:{desktop}, family, weight, variant } |
buttons_border_radius | buttons | { size:{desktop,tablet,mobile}, unit:{desktop:"px",...} } |
header_main_background | header-footer | { desktop:{ color:"palette1" } } |
footer_wrap_background | header-footer | { desktop:{ color:"palette9" } } |
Call get-settings first, read the returned shape for a key, then send a matching object back to update-settings.
Permissions
Section titled “Permissions”Both tools are gated on edit_theme_options. Kadence renders its dynamic CSS inline per request, so there’s no cache to invalidate after a write, the change is visible immediately.