โ† All skills
Tencent SkillHub ยท Developer Tools

WordPress Publisher Skill

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.

skill openclawclawhub Free
0 Downloads
0 Stars
0 Installs
0 Score
High Signal

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.

โฌ‡ 0 downloads โ˜… 0 stars Unverified but indexed

Install for OpenClaw

Quick setup
  1. Download the package from Yavira.
  2. Extract the archive and review SKILL.md first.
  3. Import or place the package into your OpenClaw setup.

Requirements

Target platform
OpenClaw
Install method
Manual import
Extraction
Extract archive
Prerequisites
OpenClaw
Primary doc
SKILL.md

Package facts

Download mode
Yavira redirect
Package format
ZIP package
Source platform
Tencent SkillHub
What's included
.claude-plugin/marketplace.json, .claude-plugin/plugin.json, .github/ISSUE_TEMPLATE/bug_report.md, .github/ISSUE_TEMPLATE/feature_request.md, .github/PULL_REQUEST_TEMPLATE.md, .github/workflows/ci.yml

Validation

  • Use the Yavira download entry.
  • Review SKILL.md after the package is downloaded.
  • Confirm the extracted package contains the expected setup assets.

Install with your agent

Agent handoff

Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.

  1. Download the package from Yavira.
  2. Extract it into a folder your agent can access.
  3. Paste one of the prompts below and point your agent at the extracted folder.
New install

I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.

Upgrade existing

I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.

Trust & source

Release facts

Source
Tencent SkillHub
Verification
Indexed source record
Version
0.1.0

Documentation

ClawHub primary doc Primary doc: SKILL.md 28 sections Open source page

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.

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

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: Go to Users โ†’ Profile in WordPress admin Scroll to Application Passwords section Enter name: Claude Publisher Click Add New Application Password Copy the generated password (shown only once, with spaces)

Test Connection

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']}")

Auto-Load Categories from Site

# 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: # 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

Exact match - Title/content contains category name Keyword match - Category slug matches topic keywords Parent category - Fall back to broader parent if no match Create new - Create category if none fit (with user approval)

Automatic Tag Generation

Generate tags that improve Google search visibility: # 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

Primary keyword - Always include as first tag Secondary keywords - Include 2-3 related terms Long-tail keywords - Include 3-4 specific phrases Entity tags - Include product/brand names mentioned Topic tags - Include broader category terms

Create/Get Tags in WordPress

# Get or create all tags, returns list of tag IDs tag_ids = wp.get_or_create_tags(tags)

Markdown to Gutenberg

from scripts.content_to_gutenberg import convert_to_gutenberg # Convert markdown content gutenberg_content = convert_to_gutenberg(markdown_content)

Supported Conversions

MarkdownGutenberg Block# Headingwp:heading**bold**<strong> in paragraph- list itemwp:list1. orderedwp:list {"ordered":true}\``code````wp:code> quotewp:quote![alt](url)wp:image| table |wp:table

Table Conversion (Critical for AI Content)

Tables are converted with proper Gutenberg structure: # 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 -->

Create Draft for Preview

# 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

# 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

Publish Draft

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

Or Create and Publish Directly

# 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

# 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() )

Check Live Post

# 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

IssueCauseSolutionTables not renderingMissing figure wrapperUse proper wp:table block structureCode not highlightedMissing language attributeAdd {"language":"python"} to code blockImages brokenWrong URL or missing mediaUpload to WordPress first, use media IDTags not showingTheme doesn't display tagsCheck theme settings or use different theme

Complete Example Workflow

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']}")

API Endpoints

ResourceEndpointPosts/wp-json/wp/v2/postsPages/wp-json/wp/v2/pagesCategories/wp-json/wp/v2/categoriesTags/wp-json/wp/v2/tagsMedia/wp-json/wp/v2/media

Post Statuses

StatusDescriptionpublishLive and visibledraftSaved but not visiblependingAwaiting reviewprivateOnly visible to adminsfutureScheduled 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 CodeMeaningSolution401Invalid credentialsCheck username and application password403Insufficient permissionsUser needs Editor or Admin role404Endpoint not foundVerify REST API is enabled400Invalid dataCheck category/tag IDs exist500Server errorRetry or check WordPress error logs

Best Practices

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

Category context

Code helpers, APIs, CLIs, browser automation, testing, and developer operations.

Source: Tencent SkillHub

Largest current source with strong distribution and engagement signals.

Package contents

Included in package
3 Docs3 Config
  • .github/ISSUE_TEMPLATE/bug_report.md Docs
  • .github/ISSUE_TEMPLATE/feature_request.md Docs
  • .github/PULL_REQUEST_TEMPLATE.md Docs
  • .claude-plugin/marketplace.json Config
  • .claude-plugin/plugin.json Config
  • .github/workflows/ci.yml Config