From aviz85-claude-skills-library
Publishes HTML content as drafts or live posts to WordPress via Node.js CLI script. Supports featured images, excerpts, categories/tags. Defaults to Hebrew RTL formatting.
npx claudepluginhub aviz85/claude-skills-libraryThis skill uses the workspace's default tool permissions.
> **First time?** If `setup_complete: false` above, run `./SETUP.md` first, then set `setup_complete: true`.
Publishes HTML content as drafts or live posts to WordPress via Node.js CLI script. Supports featured images, excerpts, categories/tags. Defaults to Hebrew RTL formatting.
Create and manage WordPress posts, pages, media, categories, tags, and menus using WP-CLI or REST API. For blog posts, page updates, media uploads, bulk operations.
Publishes optimized blog posts to WordPress or Webflow with SEO metadata, categories, tags, featured images, scheduling, quality checks, and verification.
Share bugs, ideas, or general feedback.
First time? If
setup_complete: falseabove, run./SETUP.mdfirst, then setsetup_complete: true.
Publish content to WordPress with a two-step flow: draft first, then publish after user confirmation.
IMPORTANT: Unless the user explicitly requests English or another language, create all blog posts in Hebrew with RTL formatting. Also generate images using the image-generation skill for:
Always wrap Hebrew content in:
<article dir="rtl" lang="he">
<!-- Hebrew content here -->
</article>
Create .env file in the skill directory:
# ~/.claude/skills/wordpress-publisher/.env
WP_URL=https://your-site.com
WP_USERNAME=your_username
WP_APP_PASSWORD=YourApplicationPasswordNoSpaces
Creating Application Password:
node ~/.claude/skills/wordpress-publisher/scripts/wp-publish.js create "Post Title" content.html
node ~/.claude/skills/wordpress-publisher/scripts/wp-publish.js create "Post Title" content.html --image=cover.jpg
node ~/.claude/skills/wordpress-publisher/scripts/wp-publish.js create "Post Title" content.html --publish
node ~/.claude/skills/wordpress-publisher/scripts/wp-publish.js publish POST_ID
node ~/.claude/skills/wordpress-publisher/scripts/wp-publish.js status POST_ID
echo "<h1>Hello</h1>" | node ~/.claude/skills/wordpress-publisher/scripts/wp-publish.js create "Hello" -
| Option | Description |
|---|---|
--publish | Publish immediately (default: draft) |
--image=<path> | Featured image (uploaded to media library) |
--excerpt=<text> | Add excerpt |
--categories=<ids> | Category IDs (comma-separated) |
--tags=<ids> | Tag IDs (comma-separated) |
Draft created!
**Post ID:** 123
**Edit in WordPress:** https://your-site.com/wp-admin/post.php?post=123&action=edit
**Preview:** https://your-site.com/?p=123
Publish now or review first?
Post is live!
**URL:** https://your-site.com/your-post-slug/
| Error | Cause | Solution |
|---|---|---|
| 401 Unauthorized | Wrong credentials | Check WP_USERNAME and WP_APP_PASSWORD |
| 403 Forbidden | No permissions | Ensure user has Editor/Admin role |
| 404 Not Found | Wrong URL or API disabled | Check WP_URL, enable REST API |
For Hebrew content, wrap in RTL container:
<article dir="rtl" lang="he">
<!-- Hebrew content here -->
</article>