AgentSkillsCN

wordpress-content-manager

通过 REST API 管理 WordPress 内容,用于管理文章。需要 Node.js 和 WordPress REST API 凭证。

SKILL.md
--- frontmatter
name: wordpress-content-manager
description: WordPress content management via REST API for managing posts. Requires Node.js and WordPress REST API credentials.
compatibility: Requires Node.js 16+ and npm. Uses WP_USERNAME and WP_APP_PASSWORD (Application Password) for authentication.
metadata:
  requires-setup: true

WordPress Content Manager

Manage WordPress posts via the REST API. Fully configurable via environment variables - no manual file editing required.

Required Environment Variables

Before using this skill, the agent must ensure these environment variables are set. If any are missing, ask the user for the values and set them before proceeding.

VariableDescriptionExample
WP_SITE_URLWordPress site base URLhttps://blog.example.com
WP_USERNAMEWordPress usernameadmin
WP_APP_PASSWORDWordPress Application Passwordxxxx xxxx xxxx xxxx

How to get an Application Password:

  1. Log in to WordPress admin
  2. Go to Users → Profile
  3. Scroll to "Application Passwords"
  4. Enter a name and click "Add New Application Password"
  5. Copy the generated password (spaces are optional)

Optional Environment Variables

VariableDescriptionDefault
WP_API_URLREST API base URL{WP_SITE_URL}/wp-json/wp/v2

First-Time Setup

Run the setup script after setting the required environment variables. It installs Node.js dependencies and validates the connection.

Linux/macOS

bash
export WP_SITE_URL="https://your-site.com"
export WP_USERNAME="your-username"
export WP_APP_PASSWORD="your-app-password"
bash ~/.claude/skills/wordpress-content-manager/scripts/setup.sh

Windows (PowerShell)

powershell
$env:WP_SITE_URL = "https://your-site.com"
$env:WP_USERNAME = "your-username"
$env:WP_APP_PASSWORD = "your-app-password"
pwsh ~/.claude/skills/wordpress-content-manager/scripts/setup.ps1

If using Codex CLI, replace ~/.claude/skills with ~/.codex/skills.

If Node.js is missing, the setup script will attempt to install it using common package managers.

Commands

All commands are non-interactive and return JSON when --json is set.

Describe Connection

bash
node ~/.claude/skills/wordpress-content-manager/scripts/wp-content.mjs site info --json

List or Search Posts

bash
node ~/.claude/skills/wordpress-content-manager/scripts/wp-content.mjs posts list --status publish --search "keyword" --per_page 20 --page 1

View a Post

bash
node ~/.claude/skills/wordpress-content-manager/scripts/wp-content.mjs posts get 123 --json

Create a Post (HTML or Markdown)

bash
node ~/.claude/skills/wordpress-content-manager/scripts/wp-content.mjs posts create \
  --title "New Post" \
  --content-file ./post.md \
  --status draft \
  --categories 1,2 \
  --tags 5,7

Schedule a Post

bash
node ~/.claude/skills/wordpress-content-manager/scripts/wp-content.mjs posts create \
  --title "Scheduled Post" \
  --content "<p>HTML body</p>" \
  --status future \
  --date "2025-01-15T15:30:00"

Update a Post

bash
node ~/.claude/skills/wordpress-content-manager/scripts/wp-content.mjs posts update 123 \
  --title "Updated Title" \
  --status publish

Delete a Post

bash
node ~/.claude/skills/wordpress-content-manager/scripts/wp-content.mjs posts delete 123

Bulk Delete (Dry-Run First)

bash
node ~/.claude/skills/wordpress-content-manager/scripts/wp-content.mjs posts delete-many \
  --status draft \
  --search "test" \
  --dry-run

node ~/.claude/skills/wordpress-content-manager/scripts/wp-content.mjs posts delete-many \
  --status draft \
  --search "test" \
  --confirm

Advanced: Profile Files (Optional)

For convenience, you can create profile files in profiles/ to store site configurations. Environment variables always override profile values.

See references/profiles.md for the profile format.

Select a profile with --profile <name> or WP_PROFILE=<name>.