Wordpress ContentCAUTION
Skills for Claude Code CLI such as full stack dev Cloudflare, React, Tailwind v4, and AI integrations.
Overview
Skills for Claude Code CLI such as full stack dev Cloudflare, React, Tailwind v4, and AI integrations.
be410003e718OBSERVED · 2026-10-12What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
---
name: wordpress-content
description: "Create and manage WordPress posts, pages, media, categories, tags, and menus via WP-CLI or the REST API. Use whenever the user wants to publish a blog post on WordPress, update a page, upload media, manage categories or tags, update navigation menus, schedule posts, or do bulk content operations on a WordPress site."
compatibility: claude-code-only
---
# WordPress Content
Create, update, and manage WordPress content — posts, pages, media, categories, tags, and menus. Produces live content on the site via WP-CLI or the REST API.
## Prerequisites
- Working WP-CLI SSH connection or REST API credentials (use **wordpress-setup** skill)
- Site config from `wordpress.config.json` or `wp-cli.yml`
## Workflow
### Step 1: Determine the Operation
| Task | Best Method |
|------|-------------|
| Create/edit single post or page | WP-CLI `wp post create/update` |
| Bulk create posts | WP-CLI loop or REST API batch |
| Upload images/media | WP-CLI `wp media import` |
| Manage categories/tags | WP-CLI `wp term` |
| Update navigation menus | WP-CLI `wp menu` |
| Scheduled posts | WP-CLI with `--post_date` |
| Complex HTML content | Write to temp file, pass to WP-CLI |
| No SSH access available | REST API with Application Password |
### Step 2: Create Content
#### Blog Posts
```bash
# Simple post
wp @site post create \
--post_type=post \
--post_title="My New Blog Post" \
--post_content="<p>Post content here.</p>" \
--post_status=draft \
--post_category=3,5
# Post from HTML file (better for long content)
wp @site post create ./post-content.html \
--post_type=post \
--post_title="My New Blog Post" \
--post_status=draft \
--post_excerpt="A brief summary of the post." \
--post_category=3,5 \
--tags_input="tag1,tag2"
```
**Post statuses**: `draft`, `publish`, `pending`, `future` (use with `--post_date`)
#### Pages
```bash
wp @site post create \
--post_type=page \
--post_title="About Us" \
--post_content="<h2>Our Story</h2><p>Content here...</p>" \
--post_status=publish \
--post_parent=0 \
--menu_order=10
```
#### Scheduled Posts
```bash
wp @site post create \
--post_type=post \
--post_title="Scheduled Post" \
--post_content="<p>This goes live tomorrow.</p>" \
--post_status=future \
--post_date="2026-02-23 09:00:00"
```
### Step 3: Upload Media
```bash
# Upload from URL
wp @site media import "https://example.com/image.jpg" \
--title="Product Photo" \
--alt="Product front view" \
--caption="Our latest product"
# Upload from local file (requires SCP first for remote sites)
scp ./image.jpg user@host:/tmp/image.jpg
wp @site media import /tmp/image.jpg --title="Local Upload"
# Import and set as featured image in one step
wp @site media import "https://example.com/hero.jpg" \
--title="Hero" --featured_image --post_id={id}
# List media
wp @site post list --post_type=attachment --fields=ID,post_title,guid
# Regenerate thumbnails
wp @site media regenerate --yes
```
**Set featured image on a post**:
```bash
# Get the attachment ID from the import output, then:
wp @site post meta update {post_id} _thumbnail_id {attachment_id}
```
### Step 4: Manage Taxonomy
#### Categories
```bash
# List categories
wp @site term list category --fields=term_id,name,slug,count
# Create category
wp @site term create category "News" --slug=news --description="Company news and updates"
# Create child category
wp @site term create category "Product News" --slug=product-news --parent=5
# Update category
wp @site term update category {term_id} --name="Updated Name"
# Assign category to post
wp @site post term add {post_id} category news
```
#### Tags
```bash
# List tags
wp @site term list post_tag --fields=term_id,name,slug,count
# Create tag
wp @site term create post_tag "new-tag"
# Add tags during post creation
wp @site post create --post_title="..." --tags_input="seo,marketing,tips"
# Add tags to existing post
wp @site post term add {post_id} post_tag seo marketing tips
```
### Step 5: Manage Menus
```bash
# List menus
wp @site menu list --fields=term_id,name,slug,count
# List items in a menu
wp @site menu item list main-menu --fields=db_id,type,title,link,position
# Add page to menu
wp @site menu item add-post main-menu {page_id} --title="About Us"
# Add custom link
wp @site menu item add-custom main-menu "Contact" "https://example.com/contact/"
# Add category archive to menu
wp @site menu item add-term main-menu category {term_id}
# Reorder (set position)
wp @site menu item update {item_id} --position=3
# Delete menu item
wp @site menu item delete {item_id}
```
### Step 6: Update Existing Content
```bash
# Update post title and content
wp @site post update {post_id} \
--post_title="Updated Title" \
--post_content="<p>New content.</p>"
# Update from file
wp @site post update {post_id} ./updated-content.html
# Search posts
wp @site post list --s="search term" --fields=ID,post_title
# Bulk update status
wp @site post list --post_type=post --post_status=draft --field=ID | \
xargs -I {} wp @site post update {} --post_status=publish
# Delete (trash)
wp @site post delete {post_id}
# Delete permanently
wp @site post delete {post_id} --force
```
### Step 7: Post Meta and Custom Fields
```bash
# Get all meta for a post
wp @site post meta list {post_id} --fields=meta_key,meta_value
# Get specific meta
wp @site post meta get {post_id} meta_key
# Set meta
wp @site post meta update {post_id} meta_key "meta_value"
# Add meta (allows duplicates)
wp @site post meta add {post_id} meta_key "meta_value"
# Delete meta
wp @site post meta delete {post_id} meta_key
```
ACF stores fields with both the field value and a reference key (`_field_name` -> `field_abc123`).
### Step 8: Search and Replace
```bash
# Dry run first — always
wp @site search-replace "old text" "new text" --dry-run
# Execute
wp @site search-replace "old text" "new text" --precise
# Limit to specific table
wp @site search-replace "old" "neTrust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | PASS |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | FAIL |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (1)
| No SSH access available | REST API with Application Password |
Gates applied: no_behavioural_pass.
be410003e718full audit observations/trust-audit/skill/jezweb__wordpress-content.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-12 | be410003e718 | CAUTION | B | 89 | first audit |
Questions
What does the Wordpress Content skill do?
Skills for Claude Code CLI such as full stack dev Cloudflare, React, Tailwind v4, and AI integrations.
Is Wordpress Content safe to install?
With care. The audit graded it B (89/100) and found 1 thing worth knowing before you trust this skill, listed below with the exact line each was found on.
What can Wordpress Content access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
How current is this page?
The grade is for one exact copy of the source (be410003e718), read on 2026-10-12. The repository is watched, and a new audit runs when it changes — this is the first audit.