WP Adapter · the editor zip
Landings, copy, CSS. The canvas stays. You hit publish.
This is not WP Adapter Forms. Install WP Adapter. Claude runs the bureau inside Gutenberg, Elementor, Divi, Bricks, and the rest. Theme PHP is never touched.
Install
- WordPress 7.1.3+, PHP 8.1+, HTTPS.
- Upload the editor zip. Activate.
- WP Adapter → Connect → Connect this site (or paste
wpa_site_…). - Point the AI at
https://wpadapter.com/mcp. Full ritual.
On activate the plugin creates user wp-adapter-agent with role WP Adapter Editor: edit posts and pages, no publish, no delete, no upload. Never promote that user. Never give the AI Administrator.
WordPress screens
| Menu | What it is |
|---|---|
| Connect | Pair this origin. After it is linked: copy the MCP URL and open Connect Claude. |
| Tools | Each ability on or off. Dangerous ones default off. |
| Policy | Draft-only, publish, trash, media, site chrome, flatten, max length. Lite cannot loosen this. |
| Activity | Origin audit: when, actor, ability, object, result. |
| Snapshots | Load a post id. Restore a snapshot. Same as the rollback tool. |
| License | Cloud pairing sets this. Manual key is the older path. |
| Help | What this plugin is — and is not. |
Setup
On activate, and any time under WP Adapter → Setup, pick the canvas Claude should write to: Divi, Elementor, Gutenberg/plain, Bricks, Beaver, WPBakery, Breakdance, Oxygen. Then pick the job: rewrite copy, build new pages, or both.
get-site returns preferred_editor, job, create_hint, and playbooks. The model should read those before create-post. Setup does not turn on publish.
Playbooks
Four jobs. Read them before you improvise. The public slug 404s until a human publishes — use preview-post for a signed visitor URL (24h).
- new-landing — native Divi
[et_pb_section]incontent_divi, or the canvas you pinned. Thenpreview-postandinspect-front. - rewrite-copy —
update-postmode=patch. Do not send a full layout. - css-fight —
search-css(Additional CSS, Divi Custom CSS, page CSS, HFCM, Divi globals). Thenupdate-site-cssandpurge-cacheif LiteSpeed is on. Both on by default. Never write PHP. - ship —
inspect-frontthe preview. Setslug, thenset-status publish. Stop if Policy turned publish off.
First edit
- In Claude:
list-sites, thenget-site. Readplaybooksandcreate_hint. get-postreturnseditor: gutenberg, classic, elementor, divi, divi5, bricks, beaver, wpbakery, breakdance, oxygen, or unknown.- Ask for the job. Default is a draft. Copy is
mode=patch. A new Divi page is native shortcodes. preview-postif you need a visitor URL. Setslugbeforeset-status publish.
Editing an already-published post is allowed while Allow publish is on. If you turned Draft-only back on, duplicate to draft or turn Allow publish on again.
Canvases
Markdown update-post patches text nodes in place. It does not rebuild the page unless you pass mode=replace and Policy → Allow replace is on (Pro).
- Gutenberg and Classic — blocks or post content.
- Elementor, Divi 4, Divi 5, Bricks, Beaver Builder, WPBakery, Breakdance, Oxygen — node-level copy.
- Unknown builders (Cornerstone, Themify, …) — detected, not flattened. Copy tools may refuse rather than wreck the page.
Theme Builder / headers / footers: list-templates / update-template. Needs Pro + Allow site chrome. Theme PHP is never edited.
New page on Divi
Patching copy and landing a new layout are different jobs. get-site returns default_editor and a create_hint. On Divi, that default is divi, not Gutenberg.
- Default: native Divi 4 shortcodes —
[et_pb_section]…[/et_pb_section]— incontent_diviorcontent_html. We turn Visual Builder on and write them as the canvas. Not wrapped in a text module. Not escaped. Styling lives on the modules (background_color,button_bg_color, fonts). Still a draft. - Plain HTML with no shortcodes still lands in a fullwidth Code module plus optional
custom_css. - Do not send Gutenberg
content_blocksto Divi.allow_optionsis blogname/description, not CSS. - The theme header and footer stay. A blank Theme Builder template needs Allow site chrome. You still hit publish.
- Existing Divi pages:
content_markdown+mode=patchrewrites copy. Native shortcodes on a draft replace the canvas without Allow replace. Plain HTML on an existing Divi canvas still needsmode=replace.
Policy (Pro)
After activate, Allow publish is on (Pro). Cloud MCP cannot override origin policy. Tick Draft-only to lock it again. Lite stays draft-only.
- Draft-only writes — off by default. Tick to reject publish / future / private.
- Allow publish — on by default.
set-statuscan go live. Uncheck to lock. - Allow trash — trash only. No force-delete, ever.
- Allow media upload — jpeg, png, gif, webp, pdf, ≤ 8MB, from URL or base64.
- Allow blogname / blogdescription — only those two options.
- Allow site chrome — headers, footers, Theme Builder.
- Allow mode=replace — flatten a canvas. Off unless you mean it.
- Allow site CSS —
update-site-csson Additional CSS, Divi Custom CSS, or page CSS. On by default. - Allow cache purge —
purge-cache(LiteSpeed, Super Cache, Rocket, Autoptimize, Fastest Cache, object cache). On by default. - Allow order status — WooCommerce
set-order-status. Does not refund the payment. - Allow plugin updates — wordpress.org slugs only.
update-pluginandinstall-plugin. - Allow WordPress core updates —
update-core. Own flag. - Max content length — default 100,000 characters.
Lite (no plan on this origin) stays draft-only and only the read/write-draft abilities. Tool list, including Lite.
Dangerous abilities, default off
WP Adapter → Tools. These stay unchecked until you tick them:
trash-post, upload-media, update-menu, delete-block, rollback, update-template, set-product-status, trash-product, set-order-status, update-plugin, install-plugin, update-core.
Undo
Every mutate snapshots first. Restore from Snapshots in wp-admin or ask Claude to list-snapshots then rollback. Restores title, content, excerpt, status, slug, taxonomies, featured image, and wp_adapter_* meta. Not a dump of every ACF field. Safety chapter.
All editor tools · WooCommerce · Hand a client a key · It refused the write