Asif

WordPress Publisher Skill

Contentv0.1.0
By AsifUpdated 2026-05-11wordpress-publishing-skill-for-claude@clawhub_asif2bd/wordpress-publishing-skill-for-claude
Article WritingMarketing Copy#Rest Api

According to AlphaMoat, as of 2026-10, WordPress Publisher Skill has 10,370 downloads and 12 stars — ranked by downloads #2,639 among 10,914 AI skills in this ranking, and #268 of 927 in Content.

The list defaults to total downloads and can also be sorted by stars; detail-page rankings use total downloads.

Downloads
10.4K
Stars
12
Overall download rank
#2,639
Top 25% overall · Top 29% in Content
PlatformDownloadsStarsComments
ClawHub ↗5.6K10-
SkillHub ↗10.4K12—

Platforms count differently and update at different times.

What this skill does

After connecting to a site it loads the categories and picks the best match, generates SEO tags from the content, then creates and publishes posts or pages, with a preview before publishing. Authentication must use an application password, never the regular WordPress password. Publishing makes content public. Preview and obtain user approval before publishing; keep the WordPress application password protected.

Profile published 2026-10-27

What you can do with it

  • Publish a draft to the site in Gutenberg block format.
  • Automatically choose categories and generate SEO tags for a post.

When to use it

  • When content should go from the conversation straight to WordPress.
  • When a site has many categories and manual selection is error-prone.

Example prompts

Generated from the skill’s documentation as examples; not results of actual runs.

Publish this draft to my WordPress site and pick the categories and tags for me.
Generate a Gutenberg-format preview first, then publish after I confirm.

Monthly Trend

Downloads10.4K
3.4K7.2K10.9K2026-03 · Downloads 3.9K2026-05 · Downloads 4.8K2026-07 · Downloads 5.3K2026-08 · Downloads 5.5K2026-09 · Downloads 6.3K2026-10 · Downloads 10.4K26-0326-0926-10
Stars12
1011122026-03 · Stars 102026-05 · Stars 122026-07 · Stars 122026-08 · Stars 122026-09 · Stars 122026-10 · Stars 1226-0326-0926-10

The counting method changed in 2026-09: skills with the same name are now counted separately by author, and the full catalog is covered. Dashed lines show months before the change; they are not compared with later months, and no growth is computed across the change.

MonthDownloadsMoMStars
2026-1010.4K—12
2026-096.3K—12
2026-085.5K+2.6%12
2026-075.3K—12
2026-054.8K—12
2026-033.9K—10

SKILL.md (original)

The author’s original file, shown as plain text without edits or review by AlphaMoat. Links are not clickable; check commands before running them. Fetched 2026-10-23.

10 KB · ClawHub v0.1.0
---
name: wordpress-publisher
description: Publish content directly to WordPress sites via REST API with full Gutenberg block support. Create and publish posts/pages, auto-load and select categories from website, generate SEO-optimized tags, preview articles before publishing, and generate Gutenberg blocks for tables, images, lists, and rich formatting. Use when user wants to publish to WordPress, post to blog, create WordPress article, update WordPress post, or convert markdown to Gutenberg blocks.
author: xCloud
version: 1.0.0
---

# WordPress Publisher

Publish content directly to WordPress sites using the REST API with full Gutenberg block formatting, automatic category selection, SEO tag generation, and preview capabilities.
Show all (369 lines)

## Complete Workflow Overview

```
1. CONNECT    → Authenticate with WordPress site
2. ANALYZE    → Load categories from site, analyze content for best match
3. GENERATE   → Create SEO-optimized tags based on content
4. CONVERT    → Transform markdown/HTML to Gutenberg blocks
5. PREVIEW    → Create draft and verify rendering
6. PUBLISH    → Publish or schedule the post
7. VERIFY     → Confirm live post renders correctly
```

---

## Step 1: Connection Setup

### Get Credentials
Ask user for:
- WordPress site URL (e.g., `https://example.com`)
- WordPress username
- Application password (NOT regular password)

### How to Create Application Password
Guide user:
1. Go to **Users → Profile** in WordPress admin
2. Scroll to **Application Passwords** section
3. Enter name: `Claude Publisher`
4. Click **Add New Application Password**
5. Copy the generated password (shown only once, with spaces)

### Test Connection
```python
from scripts.wp_publisher import WordPressPublisher

wp = WordPressPublisher(
    site_url="https://example.com",
    username="admin",
    password="xxxx xxxx xxxx xxxx xxxx xxxx"  # Application password
)

# Test connection
user_info = wp.test_connection()
print(f"Connected as: {user_info['name']}")
```

---

## Step 2: Load and Select Categories

### Auto-Load Categories from Site
```python
# Get all categories from the WordPress site
categories = wp.get_categories_with_details()

# Returns list like:
# [
#   {'id': 1, 'name': 'Uncategorized', 'slug': 'uncategorized', 'count': 5},
#   {'id': 2, 'name': 'Tutorials', 'slug': 'tutorials', 'count': 12},
#   {'id': 3, 'name': 'Cloud Hosting', 'slug': 'cloud-hosting', 'count': 8},
# ]
```

### Smart Category Selection
The system analyzes content and selects the most appropriate category:

```python
# Analyze content and suggest best category
suggested_category = wp.suggest_category(
    content=article_content,
    title=article_title,
    available_categories=categories
)

# Or let user choose from available options
print("Available categories:")
for cat in categories:
    print(f"  [{cat['id']}] {cat['name']} ({cat['count']} posts)")
```

### Category Selection Logic
1. **Exact match** - Title/content contains category name
2. **Keyword match** - Category slug matches topic keywords
3. **Parent category** - Fall back to broader parent if no match
4. **Create new** - Create category if none fit (with user approval)

---

## Step 3: Generate SEO-Optimized Tags

### Automatic Tag Generation
Generate tags that improve Google search visibility:

```python
# Generate tags based on content analysis
tags = wp.generate_seo_tags(
    content=article_content,
    title=article_title,
    max_tags=10
)

# Returns list like:
# ['n8n hosting', 'workflow automation', 'self-hosted n8n', 
#  'affordable hosting', 'docker deployment', 'node.js hosting']
```

### Tag Generation Rules
1. **Primary keyword** - Always include as first tag
2. **Secondary keywords** - Include 2-3 related terms
3. **Long-tail keywords** - Include 3-4 specific phrases
4. **Entity tags** - Include product/brand names mentioned
5. **Topic tags** - Include broader category terms

### Create/Get Tags in WordPress
```python
# Get or create all tags, returns list of tag IDs
tag_ids = wp.get_or_create_tags(tags)
```

---

## Step 4: Convert Content to Gutenberg Blocks

### Markdown to Gutenberg
```python
from scripts.content_to_gutenberg import convert_to_gutenberg

# Convert markdown content
gutenberg_content = convert_to_gutenberg(markdown_content)
```

### Supported Conversions

| Markdown | Gutenberg Block |
|----------|-----------------|
| `# Heading` | `wp:heading` |
| `**bold**` | `<strong>` in paragraph |
| `- list item` | `wp:list` |
| `1. ordered` | `wp:list {"ordered":true}` |
| `\`\`\`code\`\`\`` | `wp:code` |
| `> quote` | `wp:quote` |
| `![alt](url)` | `wp:image` |
| `\| table \|` | `wp:table` |

### Table Conversion (Critical for AI Content)
Tables are converted with proper Gutenberg structure:

```python
# Input markdown:
| Feature | Plan A | Plan B |
|---------|--------|--------|
| Price   | $10    | $20    |

# Output Gutenberg:
<!-- wp:table -->
<figure class="wp-block-table"><table>
  <thead><tr><th>Feature</th><th>Plan A</th><th>Plan B</th></tr></thead>
  <tbody><tr><td>Price</td><td>$10</td><td>$20</td></tr></tbody>
</table></figure>
<!-- /wp:table -->
```

---

## Step 5: Preview Before Publishing

### Create Draft for Preview
```python
# Create as draft first
result = wp.create_draft(
    title="Article Title",
    content=gutenberg_content,
    categories=[category_id],
    tags=tag_ids,
    excerpt="Auto-generated or custom excerpt"
)

post_id = result['post_id']
preview_url = result['preview_url']
edit_url = result['edit_url']
```

### Verify Preview
```python
# Fetch preview page to verify rendering
preview_content = wp.fetch_preview(post_id)

# Check for issues
issues = wp.validate_rendered_content(preview_content)
if issues:
    print("Issues found:")
    for issue in issues:
        print(f"  - {issue}")
```

### Preview Checklist
- [ ] Title displays correctly
- [ ] All headings render (H2, H3, H4)
- [ ] Tables render with proper formatting
- [ ] Lists display correctly (bullet and numbered)
- [ ] Code blocks have syntax highlighting
- [ ] Images load (if any)
- [ ] Links are clickable
- [ ] Category shows correctly
- [ ] Tags display in post

---

## Step 6: Publish the Post

### Publish Draft
```python
# After preview approval, publish
result = wp.publish_post(post_id)
live_url = result['live_url']
```

### Or Create and Publish Directly
```python
# Full publish workflow in one call
result = wp.publish_content(
    title="Article Title",
    content=gutenberg_content,
    category_names=["Cloud Hosting"],  # By name, auto-resolves to ID
    tag_names=["n8n", "hosting", "automation"],
    status="publish",  # or "draft", "pending", "private", "future"
    excerpt="Custom excerpt for SEO",
    slug="custom-url-slug"
)
```

### Scheduling Posts
```python
# Schedule for future publication
from datetime import datetime, timedelta

publish_date = datetime.now() + timedelta(days=1)
result = wp.publish_content(
    title="Scheduled Post",
    content=content,
    status="future",
    date=publish_date.isoformat()
)
```

---

## Step 7: Verify Published Post

### Check Live Post
```python
# Verify the published post
verification = wp.verify_published_post(post_id)

print(f"Live URL: {verification['url']}")
print(f"Status: {verification['status']}")
print(f"Categories: {verification['categories']}")
print(f"Tags: {verification['tags']}")
```

### Common Issues and Fixes

| Issue | Cause | Solution |
|-------|-------|----------|
| Tables not rendering | Missing figure wrapper | Use proper `wp:table` block structure |
| Code not highlighted | Missing language attribute | Add `{"language":"python"}` to code block |
| Images broken | Wrong URL or missing media | Upload to WordPress first, use media ID |
| Tags not showing | Theme doesn't display tags | Check theme settings or use different theme |

---

## Complete Example Workflow

```python
from scripts.wp_publisher import WordPressPublisher
from scripts.content_to_gutenberg import convert_to_gutenberg

# 1. Connect
wp = WordPressPublisher(
    site_url="https://xcloud.host",
    username="admin",
    password="xxxx xxxx xxxx xxxx"
)

# 2. Load categories and select best match
categories = wp.get_categories_with_details()
best_category = wp.suggest_category(content, title, categories)

# 3. Generate SEO tags
tags = wp.generate_seo_tags(content, title, max_tags=10)

# 4. Convert to Gutenberg
gutenberg_content = convert_to_gutenberg(markdown_content)

# 5. Create draft and preview
draft = wp.create_draft(
    title="7 Best n8n Hosting Providers in 2026",
    content=gutenberg_content,
    categories=[best_category['id']],
    tags=wp.get_or_create_tags(tags)
)
print(f"Preview: {draft['preview_url']}")

# 6. After verification, publish
result = wp.publish_post(draft['post_id'])
print(f"Published: {result['live_url']}")
```

---

## Quick Reference

### API Endpoints
| Resource | Endpoint |
|----------|----------|
| Posts | `/wp-json/wp/v2/posts` |
| Pages | `/wp-json/wp/v2/pages` |
| Categories | `/wp-json/wp/v2/categories` |
| Tags | `/wp-json/wp/v2/tags` |
| Media | `/wp-json/wp/v2/media` |

### Post Statuses
| Status | Description |
|--------|-------------|
| `publish` | Live and visible |
| `draft` | Saved but not visible |
| `pending` | Awaiting review |
| `private` | Only visible to admins |
| `future` | Scheduled for later |

### Required Files
- `scripts/wp_publisher.py` - Main publisher class
- `scripts/content_to_gutenberg.py` - Markdown/HTML converter
- `references/gutenberg-blocks.md` - Block format reference

---

## Error Handling

| Error Code | Meaning | Solution |
|------------|---------|----------|
| 401 | Invalid credentials | Check username and application password |
| 403 | Insufficient permissions | User needs Editor or Admin role |
| 404 | Endpoint not found | Verify REST API is enabled |
| 400 | Invalid data | Check category/tag IDs exist |
| 500 | Server error | Retry or check WordPress error logs |

---

## Best Practices

1. **Always preview first** - Create as draft, verify, then publish
2. **Use application passwords** - Never use regular WordPress password
3. **Select appropriate category** - Helps with site organization and SEO
4. **Generate relevant tags** - Improves Google discoverability
5. **Validate Gutenberg blocks** - Ensure proper block structure
6. **Keep excerpts under 160 chars** - Optimal for search snippets
7. **Use descriptive slugs** - Include primary keyword in URL

Popular in Content

李白.SkillContent

李白.Skill:润色专家 检测并消除中文文本中的AI生成痕迹,将生硬的机器输出转化为自然流畅的人类文笔。融合规则检测、分层改写和质控流水线,确保最终文本通过人工审查。

↓ 1.3M★ 121user_741dc82b
libai-skillContent

李白.Skill:润色专家 检测并消除中文文本中的AI生成痕迹,将生硬的机器输出转化为自然流畅的人类文笔。融合规则检测、分层改写和质控流水线,确保最终文本通过人工审查。

↓ 1.0M★ 11user_814dbe54
文章去AI味工具Content

Detects and removes AI writing traces so text reads more like a person wrote it.

↓ 951.0K★ 767user_ab5ae6ee
视频号爆款短视频拆解(付费版:全能)【零一数科·出品】Content

【零一数科·出品】视频号爆款短视频拆解(全能版)(付费版)。视频号爆款短视频拆解(付费版:全能)。一键拆解爆款,把一条视频号视频拆成结构分段、爆款归因、六维评分和可借鉴策略,照着学照着抄。支持视频号分享链接和本地视频,付费全能版远端分析,1–5 分钟出可视化 HTML 报告。

↓ 918.5K★ 116u_c19e970c
视频号挂车爆单短视频脚本生成【零一数科·出品】Content

【零一数科·出品】视频号挂车爆单短视频脚本生成(付费版)。一条链接二创脚本,丢进爆款视频号链接即以此骨架改写成你的挂车脚本,或按方向/目的/商品原创多条口播脚本(含分段表、口播全文、六维质检评分)。

↓ 554.4K★ 39u_c19e970c
HumanizerContent

A writing-editor skill that finds the usual marks of AI-generated text and rewrites them into more natural prose without losing the meaning.

↓ 508.8K★ 1.1KB*T
中文公文写作Content

用于中文公文、事务性材料和新闻稿件的起草、改写、压缩、润色、审校、文种核对、去口语化、降 AI 味及 Word 格式处理,适用于机关、企事业单位、学校和新闻机构。涵盖申请、请示、报告、通知、通告、意见、决定、决议、议案、公报、命令、函、复函、批复、说明、方案、纪要、公告、公示、通报、制度、规定、办法、细则、操作规程、工作要点、总结、调研、讲话、致辞、主持词、述职、可研、审查材料、技术需求、新闻消息、编者按、新闻评论,以及采购、整改、反馈和 AI 算力等场景。

↓ 413.4K★ 84gongyu0918
视频号爆款文案生成(体验版)【零一数科·出品】Content

【零一数科·出品】视频号爆款文案生成(体验版)。免费免登录出脚本,给创作目的、行业、受众、选题就按爆款结构(Hook-中段-CTA、节奏标签)产出口播脚本,信息不全也能按爆款潜质兜底。本地运行、无需 Key,零成本上手。

↓ 339.1K★ 94u_c19e970c

More from Asif

Data as of 2026-10. Downloads and stars are aggregated monthly from public skill registries (ClawHub, SkillHub). See data methodology.