Agent skill

Wordpress Content

by jezweb in jezweb/claude-skills

Create and manage WordPress posts, pages, media, categories, tags, and menus via WP-CLI or the REST API.

MITAuto-check passedBackend & APIs

Install Wordpress Content

skills CLI
$ npx skills add jezweb/claude-skills --skill wordpress-content -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install jezweb/claude-skills wordpress-content --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/jezweb/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/wordpress/skills/wordpress-content .claude/skills/wordpress-content && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
wordpress-content
GitHub stars
1.1k
Token cost
~2.6k tokens
SKILL.md length
371 words
Files
1
Skills in repo
52
Repo updated
First seen
Licence
MIT

At a glance

Create and manage WordPress posts, pages, media, categories, tags, and menus via WP-CLI or the REST API.

  • Works in 10 steps: Determine the Operation → Create Content → Upload Media → …
  • The user wants to publish a blog post on WordPress
  • SKILL.md covers Prerequisites, Workflow, REST API Reference and Critical Patterns
  • Calls curl, jq and scp

What it does

Wordpress Content is an agent skill from jezweb/claude-skills. 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.

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts. Compatibility notes: claude-code-only

It sits in Backend & APIs, covering REST APIs and Blog and article writing. It works with WordPress. The repository describes itself as: Skills for Claude Code CLI such as full stack dev Cloudflare, React, Tailwind v4, and AI integrations. The licence is MIT.

When your agent uses it

  • The user wants to publish a blog post on WordPress
  • Manage categories
  • Update navigation menus
  • Do bulk content operations on a WordPress site

Example prompts

  • “/wordpress-content”

Requirements

  • Compatibility (from SKILL.md): claude-code-only

Workflow steps

10 steps, taken from the step headings in SKILL.md.

  1. Determine the Operation
  2. Create Content
  3. Upload Media
  4. Manage Taxonomy
  5. Manage Menus
  6. Update Existing Content
  7. Post Meta and Custom Fields
  8. Search and Replace
  9. Export and Import
  10. Verify

What it can do on your machine

Read from SKILL.md and the folder at commit 64965d9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • curl
    • jq
    • scp

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use curl and scp, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    claude-code-only

    From compatibility in the SKILL.md frontmatter.

Context cost

Wordpress Content loads about 2.6k tokens when it runs. Until then it costs about 84 tokens; SKILL.md has 371 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~84
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from jezweb/claude-skills at commit 64965d9, republished under its MIT licence (© jezweb). 371 words, ~2,581 tokens.

Download SKILL.mdSave it as .claude/skills/wordpress-content/SKILL.md (or your agent's skills folder).
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
TaskBest Method
Create/edit single post or pageWP-CLI wp post create/update
Bulk create postsWP-CLI loop or REST API batch
Upload images/mediaWP-CLI wp media import
Manage categories/tagsWP-CLI wp term
Update navigation menusWP-CLI wp menu
Scheduled postsWP-CLI with --post_date
Complex HTML contentWrite to temp file, pass to WP-CLI
No SSH access availableREST 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" "new" wp_posts --precise

# Limit to specific column
wp @site search-replace "old" "new" wp_posts post_content --precise
Step 9: Export and Import
bash
# Export all content
wp @site export --dir=/tmp/

# Export specific post type
wp @site export --post_type=post --dir=/tmp/

# Import
wp @site import /path/to/file.xml --authors=mapping.csv
Step 10: Verify
bash
# Check the post
wp @site post get {post_id} --fields=ID,post_title,post_status,guid

# Get the live URL
wp @site post get {post_id} --field=guid

# List recent posts
wp @site post list --post_type=post --posts_per_page=5 --fields=ID,post_title,post_status,post_date

Provide the admin URL and live URL:

  • Admin: https://example.com/wp-admin/post.php?post={id}&action=edit
  • Live: https://example.com/{slug}/

REST API Reference

When WP-CLI is not available, use the WordPress REST API with Application Password auth.

Authentication
bash
# Base64 encode credentials
AUTH=$(echo -n "username:xxxx xxxx xxxx xxxx xxxx xxxx" | base64)

# Use in requests
curl -s https://example.com/wp-json/wp/v2/posts \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json"
Show full SKILL.md (152 more words)Show less
Endpoints
ResourceEndpoint
Posts/wp-json/wp/v2/posts
Pages/wp-json/wp/v2/pages
Media/wp-json/wp/v2/media
Categories/wp-json/wp/v2/categories
Tags/wp-json/wp/v2/tags

All support GET (list/single), POST (create), PUT (update), DELETE.

Create Post via REST
bash
curl -s https://example.com/wp-json/wp/v2/posts \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "My New Post",
    "content": "<p>Post content here.</p>",
    "status": "draft",
    "categories": [3, 5],
    "tags": [10, 12],
    "excerpt": "Brief summary",
    "featured_media": 456
  }' | jq '{id, link, status}'
Create Page via REST
bash
curl -s https://example.com/wp-json/wp/v2/pages \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{
    "title": "About Us",
    "content": "<h2>Our Story</h2><p>Content...</p>",
    "status": "publish",
    "parent": 0
  }'
Upload Media via REST
bash
curl -s https://example.com/wp-json/wp/v2/media \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Disposition: attachment; filename=photo.jpg" \
  -H "Content-Type: image/jpeg" \
  --data-binary @photo.jpg | jq '{id, source_url}'
Create Category via REST
bash
curl -s https://example.com/wp-json/wp/v2/categories \
  -H "Authorization: Basic $AUTH" \
  -H "Content-Type: application/json" \
  -d '{"name": "News", "slug": "news", "description": "Company updates"}'
Query Parameters
ParameterPurposeExample
per_pageResults per page (max 100)?per_page=50
pagePagination?page=2
searchSearch term?search=keyword
statusFilter by status?status=draft
categoriesFilter by category ID?categories=3
orderbySort field?orderby=date
orderSort direction?order=desc
_fieldsLimit response fields?_fields=id,title,link

Menus: Navigation menus have limited REST API support. The /wp-json/wp/v2/navigation endpoint exists for block-based navigation in FSE themes. For classic menus, use WP-CLI.


Critical Patterns

HTML Content in WP-CLI

For anything beyond a sentence, write HTML to a temp file and pass it:

bash
cat > /tmp/post-content.html << 'EOF'
<h2>Section Heading</h2>
<p>Paragraph content with <strong>bold</strong> and <a href="/link">links</a>.</p>
<ul>
  <li>List item one</li>
  <li>List item two</li>
</ul>
EOF

wp @site post create /tmp/post-content.html --post_title="My Post" --post_status=draft

Shell quoting in --post_content is fragile for complex HTML.

Bulk Operations

For creating many posts, use a loop with verification:

bash
while IFS=, read -r title slug content_file category; do
  wp @site post create "$content_file" \
    --post_type=post \
    --post_title="$title" \
    --post_name="$slug" \
    --post_category="$category" \
    --post_status=draft
  sleep 0.5
done < posts.csv

Always create as draft first, review, then bulk-publish.

© jezweb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in plugins/wordpress/skills/wordpress-content of jezweb/claude-skills.

Open the folder on GitHubat commit 64965d9

Compare with similar skills

Wordpress Content next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Wordpress Content compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Wordpress Content this skilljezweb/claude-skills1.1k—~2.6kAutomated safety check: PassMIT
Blog TaxonomyAgriciDaniel/claude-blog2.3k1 repos~2.5kAutomated safety check: PassMIT
Wp Performancegambitph/Stackable3503 repos~1.5kAutomated safety check: PassGPL-3.0
WooCommerce Store API Routeswoocommerce/woocommerce11k—~932Automated safety check: PassCustom licence
Wordpress Routergambitph/Stackable3503 repos~554Automated safety check: PassGPL-3.0
Wp REST APIgambitph/Stackable3502 repos~1.2kAutomated safety check: PassGPL-3.0

Similar skills

  • Blog Taxonomy

    AgriciDaniel/claude-blog

    Extract, suggest, and sync tags and categories for blog posts across all major CMS platforms.

    2.3k GitHub starsUsed in 1 repo~2.5k tokens
    Backend & APIsAuto-check passed
  • Wp Performance

    gambitph/Stackable

    A skill your agent uses when investigating or improving WordPress performance (backend-only agent): profiling and measurement (WP-CLI profile/doctor, Server-Timing, Query Monitor via REST headers)…

    350 GitHub starsUsed in 3 repos~1.5k tokens
    Backend & APIsAuto-check passed
  • WooCommerce Store API Routes

    woocommerce/woocommerce

    Guidelines for adding or changing routes in the WooCommerce Store API under /wc/store/v1, covering authentication, REST design, schemas and variations.

    11k GitHub stars~932 tokensUpdated today
    Backend & APIsAuto-check passed
  • Wordpress Router

    gambitph/Stackable

    A skill your agent uses when the user asks about WordPress codebases (plugins, themes, block themes, Gutenberg blocks, WP core checkouts) and you need to quickly classify the repo and route to the…

    350 GitHub starsUsed in 3 repos~554 tokens
    Backend & APIsAuto-check passed
  • Wp REST API

    gambitph/Stackable

    A skill your agent uses when building, extending, or debugging WordPress REST API endpoints/routes: registerrestroute, WPRESTController/controller classes, schema/argument validation…

    350 GitHub starsUsed in 2 repos~1.2k tokens
    Backend & APIsAuto-check passed
  • Wp REST API Development

    jorgerosal/wordpress-skills

    WordPress REST API review and development guidance. An agent skill from jorgerosal/wordpress-skills.

    101 GitHub stars~1.4k tokensUpdated 4 mo ago
    Backend & APIsAuto-check passed

More from jezweb/claude-skills

All 52 skills in this repo
  • Elevenlabs Agents

    jezweb/claude-skills

    Build conversational AI voice agents on the ElevenLabs platform.

    1.1k GitHub starsUsed in 1 repo~3.3k tokens
    Auto-check passed
  • Favicon Gen

    jezweb/claude-skills

    Generate custom favicons from logos, text, or brand colours.

    1.1k GitHub starsUsed in 1 repo~1k tokens
    Auto-check passed
  • Tailwind Theme Builder

    jezweb/claude-skills

    Set up Tailwind v4 + shadcn/ui themed UI with dark mode. An agent skill from jezweb/claude-skills.

    1.1k GitHub starsUsed in 1 repo~3.2k tokens
    Auto-check passed
  • Project Health

    jezweb/claude-skills

    All-in-one project configuration and health management. An agent skill from jezweb/claude-skills.

    1.1k GitHub starsUsed in 1 repo~3k tokens
    Auto-check passed
  • Responsiveness Check

    jezweb/claude-skills

    Test website responsiveness across viewport widths using browser automation.

    1.1k GitHub starsUsed in 1 repo~1.7k tokens
    Auto-check passed
  • MCP Builder

    jezweb/claude-skills

    Build MCP servers in Python with FastMCP. An agent skill from jezweb/claude-skills.

    1.1k GitHub stars~3.1k tokensUpdated 3 days ago
    Auto-check: notes

Works with

Questions about Wordpress Content

What does Wordpress Content do?

Create and manage WordPress posts, pages, media, categories, tags, and menus via WP-CLI or the REST API. Wordpress Content is an agent skill from jezweb/claude-skills. Create and manage WordPress posts, pages, media, categories, tags, and menus via WP-CLI or the REST API.

When should I use Wordpress Content?

Wordpress Content fits situations like: the user wants to publish a blog post on WordPress; manage categories; update navigation menus; do bulk content operations on a WordPress site.

How do I install Wordpress Content in Claude Code?

Run `npx skills add jezweb/claude-skills --skill wordpress-content -a claude-code`. Or copy the skill folder (plugins/wordpress/skills/wordpress-content in jezweb/claude-skills) into .claude/skills/wordpress-content in your project. Claude Code loads it when a task matches its description.

How do I install Wordpress Content in Codex?

Run `npx skills add jezweb/claude-skills --skill wordpress-content -a codex`. Or copy the skill folder (plugins/wordpress/skills/wordpress-content in jezweb/claude-skills) into .agents/skills/wordpress-content in your project. Codex loads it when a task matches its description.

Can I use Wordpress Content in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jezweb/claude-skills --skill wordpress-content -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/wordpress-content, .gemini/skills/wordpress-content, .github/skills/wordpress-content and .opencode/skills/wordpress-content in your project.

What does Wordpress Content need to run?

Going by SKILL.md and its folder, Wordpress Content needs the command-line tools its instructions call (curl, jq and scp). Compatibility (from SKILL.md): claude-code-only.

Does Wordpress Content access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is Wordpress Content safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Wordpress Content use?

Wordpress Content is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Wordpress Content use?

About 2.6k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Wordpress Content?

Skills that share tags, products or a category with Wordpress Content: Blog Taxonomy (AgriciDaniel/claude-blog, 2.3k stars), Wp Performance (gambitph/Stackable, 350 stars), WooCommerce Store API Routes (woocommerce/woocommerce, 11k stars) and Wordpress Router (gambitph/Stackable, 350 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Wordpress Content?

jezweb (a GitHub user) maintains it in jezweb/claude-skills, which has 1,051 GitHub stars. The repository holds 52 skills in this directory. The repository was last updated on October 5, 2026.

Source: jezweb/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.