| name | wordpress |
| description | OpenClaw skill that provides a WordPress REST API CLI for posts, pages, categories, tags, users, and custom requests using plain HTTP. |
WordPress REST API Skill (Advanced)
Purpose
Provide a production-ready CLI for WordPress REST API automation. This skill focuses on content workflows (posts/pages), taxonomy (categories/tags), user reads, and safe custom requests without external HTTP libraries.
Best fit
- You want a stable CLI for automation and bot workflows.
- You need JSON-in/JSON-out for pipelines.
- You prefer simple HTTP with no extra dependencies.
Not a fit
- You must handle OAuth flows or complex browser-based auth.
- You need advanced media uploads (multipart streaming).
Requirements
- Node.js 18+ (for native
fetch).
One-time setup
- Enable the WordPress REST API (default in modern WordPress).
- Create an Application Password for a WordPress user.
- Confirm the user has the right role (e.g., Editor/Admin).
Install
cd wordpress
npm install
Run
node scripts/wp-cli.js help
node scripts/wp-cli.js posts:list --query per_page=5
node scripts/wp-cli.js posts:create '@post.json'
You can also use npm:
npm run wp -- posts:list --query per_page=5
Credentials
Supported options (first match wins):
- Basic auth token:
WP_BASIC_TOKEN (base64 of user:app_password)
- User + app password:
WP_USER + WP_APP_PASSWORD
- JWT bearer token:
WP_JWT_TOKEN
Required env
WP_BASE_URL (e.g., https://example.com)
Input conventions
- JSON can be inline or loaded from file with
@path.
- Query params use
--query key=value (repeatable) or --query key1=value1,key2=value2.
Command map (high level)
Posts:
posts:list, posts:get, posts:create, posts:update, posts:delete
Pages:
pages:list, pages:get, pages:create, pages:update, pages:delete
Taxonomy:
categories:list, categories:create
tags:list, tags:create
Users:
Advanced:
request (raw method + path)
Operational guidance
- Prefer
context=view for read-only list calls.
- Use
status=draft when staging content.
- Implement retries for
429 and transient 5xx errors in orchestrators.
Expected output
- JSON to stdout; non-zero exit code on errors.
Security notes
- Never log or commit tokens or application passwords.
- Use a dedicated low-privilege WordPress account where possible.