From rolepod-wplab
Create, read, update, search posts/pages/users/options/taxonomies via the core WP REST API on a connected target. Phase = Build.
How this skill is triggered — by the user, by Claude, or both
Slash command
/rolepod-wplab:wp-contentWhen to use
any "create / write / list / read / update" request scoped to WordPress core content (posts, pages, custom post types, users, options, categories, tags, media), without builder-specific markup or plugin adapter writes
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Core-REST CRUD skill. Owns the most common WordPress operations: write a page, list posts, update an option, register a user, query the DB read-only. Anything builder-specific (Elementor JSON, Divi shortcodes) belongs to `wp-edit-design`; anything plugin-specific (Yoast meta, Woo products) belongs to `wp-edit-plugin`.
Core-REST CRUD skill. Owns the most common WordPress operations: write a page, list posts, update an option, register a user, query the DB read-only. Anything builder-specific (Elementor JSON, Divi shortcodes) belongs to wp-edit-design; anything plugin-specific (Yoast meta, Woo products) belongs to wp-edit-plugin.
/wp/v2/* REST surface.Skip when:
wp-edit-design.wp-edit-plugin.wp-scaffold.Owns:
rolepod_wp_post_{get,list,create,update} for posts/pages/CPTs.rolepod_wp_user_list.rolepod_wp_option_{get,set} for the WP-allowed settings surface (siteurl, blogname, etc.).rolepod_wp_db_query (SELECT only).rolepod_wp_rest_request for arbitrary /wp/v2/* calls.rolepod_wp_rest_dump to discover routes.Does not own:
_elementor_data, Divi shortcodes, Oxygen JSON, Bricks JSON) → wp-edit-design.wp-edit-plugin.wp-scaffold or wp-edit-design.Return / hand off:
wp-edit-design.wp-edit-plugin.wp-diagnose.type (default posts), title, content, status (default draft).id + the fields to change (read the post first if content is unknown).type, optional search, status, per_page, page, orderby.name; for set, value + confirm: true if on production.path, method, optional body/query.| User intent | Tool |
|---|---|
| create a page/post/cpt | rolepod_wp_post_create |
| update an existing one | rolepod_wp_post_get first (if unknown), then rolepod_wp_post_update |
| list / search / filter | rolepod_wp_post_list |
| list users | rolepod_wp_user_list |
| read site setting | rolepod_wp_option_get |
| write site setting | rolepod_wp_option_set (production guard fires if siteurl-matched) |
| arbitrary REST call | rolepod_wp_rest_request |
| discover what routes exist | rolepod_wp_rest_dump |
| read-only DB | rolepod_wp_db_query |
When content is a Gutenberg-block page, use the comment-syntax block markup:
<!-- wp:paragraph -->
<p>Hello world.</p>
<!-- /wp:paragraph -->
<!-- wp:heading {"level":2} -->
<h2>Section title</h2>
<!-- /wp:heading -->
See examples/content-examples.md for non-trivial cases (group blocks, columns, cover, image with attributes).
Default to status=draft on create. Promote to publish only with explicit user OK. Never set publish for the first commit of a major page (allows revision review).
State the operation, the id (post / user / option), and any warnings. If the response includes _links, just show the canonical link.
rolepod:content-strategist (audience: user) for copy quality.rolepod:backend-developer for non-trivial REST orchestration.status=draft.No durable artifact — content lives in WordPress. The MCP returns IDs + canonical links.
Read when constructing Gutenberg block markup or chaining multiple REST calls:
examples/content-examples.md — good vs bad block markup; full landing-page composition example.Inline only. REST surface is documented at https://developer.wordpress.org/rest-api/reference/. Use rolepod_wp_rest_dump to discover the current site's actual routes.
db_query with non-SELECT → tool returns DB_WRITE_BLOCKED. STOP; re-route via REST or wp-cli (companion /wp-cli endpoint via wp-execute-php's sibling pattern — but cleaner: use the right REST endpoint).option_set on production-matched siteurl without confirm: true → STOP. Ask user for explicit confirmation, then retry with confirm: true.post_update without id → STOP, ask the user which post.Full Rolepod adds bulk batching (run 20 post_create in one composite call with optimistic concurrency); standalone, batch by orchestrating individual calls.
wp-health-check to verify the page is reachable.wp-edit-design.wp-edit-plugin.Guides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.
npx claudepluginhub nuttaruj/rolepod-wplab --plugin rolepod-wplab