{
  "schemaVersion": "1.0",
  "item": {
    "slug": "wordpress-publishing-skill-for-claude",
    "name": "WordPress Publisher Skill",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/Asif2BD/wordpress-publishing-skill-for-claude",
    "canonicalUrl": "https://clawhub.ai/Asif2BD/wordpress-publishing-skill-for-claude",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/wordpress-publishing-skill-for-claude",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=wordpress-publishing-skill-for-claude",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      ".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"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/wordpress-publishing-skill-for-claude"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/wordpress-publishing-skill-for-claude",
    "agentPageUrl": "https://openagent3.xyz/skills/wordpress-publishing-skill-for-claude/agent",
    "manifestUrl": "https://openagent3.xyz/skills/wordpress-publishing-skill-for-claude/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/wordpress-publishing-skill-for-claude/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "WordPress Publisher",
        "body": "Publish content directly to WordPress sites using the REST API with full Gutenberg block formatting, automatic category selection, SEO tag generation, and preview capabilities."
      },
      {
        "title": "Complete Workflow Overview",
        "body": "1. CONNECT    → Authenticate with WordPress site\n2. ANALYZE    → Load categories from site, analyze content for best match\n3. GENERATE   → Create SEO-optimized tags based on content\n4. CONVERT    → Transform markdown/HTML to Gutenberg blocks\n5. PREVIEW    → Create draft and verify rendering\n6. PUBLISH    → Publish or schedule the post\n7. VERIFY     → Confirm live post renders correctly"
      },
      {
        "title": "Get Credentials",
        "body": "Ask user for:\n\nWordPress site URL (e.g., https://example.com)\nWordPress username\nApplication password (NOT regular password)"
      },
      {
        "title": "How to Create Application Password",
        "body": "Guide user:\n\nGo to Users → Profile in WordPress admin\nScroll to Application Passwords section\nEnter name: Claude Publisher\nClick Add New Application Password\nCopy the generated password (shown only once, with spaces)"
      },
      {
        "title": "Test Connection",
        "body": "from scripts.wp_publisher import WordPressPublisher\n\nwp = WordPressPublisher(\n    site_url=\"https://example.com\",\n    username=\"admin\",\n    password=\"xxxx xxxx xxxx xxxx xxxx xxxx\"  # Application password\n)\n\n# Test connection\nuser_info = wp.test_connection()\nprint(f\"Connected as: {user_info['name']}\")"
      },
      {
        "title": "Auto-Load Categories from Site",
        "body": "# Get all categories from the WordPress site\ncategories = wp.get_categories_with_details()\n\n# Returns list like:\n# [\n#   {'id': 1, 'name': 'Uncategorized', 'slug': 'uncategorized', 'count': 5},\n#   {'id': 2, 'name': 'Tutorials', 'slug': 'tutorials', 'count': 12},\n#   {'id': 3, 'name': 'Cloud Hosting', 'slug': 'cloud-hosting', 'count': 8},\n# ]"
      },
      {
        "title": "Smart Category Selection",
        "body": "The system analyzes content and selects the most appropriate category:\n\n# Analyze content and suggest best category\nsuggested_category = wp.suggest_category(\n    content=article_content,\n    title=article_title,\n    available_categories=categories\n)\n\n# Or let user choose from available options\nprint(\"Available categories:\")\nfor cat in categories:\n    print(f\"  [{cat['id']}] {cat['name']} ({cat['count']} posts)\")"
      },
      {
        "title": "Category Selection Logic",
        "body": "Exact match - Title/content contains category name\nKeyword match - Category slug matches topic keywords\nParent category - Fall back to broader parent if no match\nCreate new - Create category if none fit (with user approval)"
      },
      {
        "title": "Automatic Tag Generation",
        "body": "Generate tags that improve Google search visibility:\n\n# Generate tags based on content analysis\ntags = wp.generate_seo_tags(\n    content=article_content,\n    title=article_title,\n    max_tags=10\n)\n\n# Returns list like:\n# ['n8n hosting', 'workflow automation', 'self-hosted n8n', \n#  'affordable hosting', 'docker deployment', 'node.js hosting']"
      },
      {
        "title": "Tag Generation Rules",
        "body": "Primary keyword - Always include as first tag\nSecondary keywords - Include 2-3 related terms\nLong-tail keywords - Include 3-4 specific phrases\nEntity tags - Include product/brand names mentioned\nTopic tags - Include broader category terms"
      },
      {
        "title": "Create/Get Tags in WordPress",
        "body": "# Get or create all tags, returns list of tag IDs\ntag_ids = wp.get_or_create_tags(tags)"
      },
      {
        "title": "Markdown to Gutenberg",
        "body": "from scripts.content_to_gutenberg import convert_to_gutenberg\n\n# Convert markdown content\ngutenberg_content = convert_to_gutenberg(markdown_content)"
      },
      {
        "title": "Supported Conversions",
        "body": "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"
      },
      {
        "title": "Table Conversion (Critical for AI Content)",
        "body": "Tables are converted with proper Gutenberg structure:\n\n# Input markdown:\n| Feature | Plan A | Plan B |\n|---------|--------|--------|\n| Price   | $10    | $20    |\n\n# Output Gutenberg:\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table>\n  <thead><tr><th>Feature</th><th>Plan A</th><th>Plan B</th></tr></thead>\n  <tbody><tr><td>Price</td><td>$10</td><td>$20</td></tr></tbody>\n</table></figure>\n<!-- /wp:table -->"
      },
      {
        "title": "Create Draft for Preview",
        "body": "# Create as draft first\nresult = wp.create_draft(\n    title=\"Article Title\",\n    content=gutenberg_content,\n    categories=[category_id],\n    tags=tag_ids,\n    excerpt=\"Auto-generated or custom excerpt\"\n)\n\npost_id = result['post_id']\npreview_url = result['preview_url']\nedit_url = result['edit_url']"
      },
      {
        "title": "Verify Preview",
        "body": "# Fetch preview page to verify rendering\npreview_content = wp.fetch_preview(post_id)\n\n# Check for issues\nissues = wp.validate_rendered_content(preview_content)\nif issues:\n    print(\"Issues found:\")\n    for issue in issues:\n        print(f\"  - {issue}\")"
      },
      {
        "title": "Preview Checklist",
        "body": "Title displays correctly\n All headings render (H2, H3, H4)\n Tables render with proper formatting\n Lists display correctly (bullet and numbered)\n Code blocks have syntax highlighting\n Images load (if any)\n Links are clickable\n Category shows correctly\n Tags display in post"
      },
      {
        "title": "Publish Draft",
        "body": "# After preview approval, publish\nresult = wp.publish_post(post_id)\nlive_url = result['live_url']"
      },
      {
        "title": "Or Create and Publish Directly",
        "body": "# Full publish workflow in one call\nresult = wp.publish_content(\n    title=\"Article Title\",\n    content=gutenberg_content,\n    category_names=[\"Cloud Hosting\"],  # By name, auto-resolves to ID\n    tag_names=[\"n8n\", \"hosting\", \"automation\"],\n    status=\"publish\",  # or \"draft\", \"pending\", \"private\", \"future\"\n    excerpt=\"Custom excerpt for SEO\",\n    slug=\"custom-url-slug\"\n)"
      },
      {
        "title": "Scheduling Posts",
        "body": "# Schedule for future publication\nfrom datetime import datetime, timedelta\n\npublish_date = datetime.now() + timedelta(days=1)\nresult = wp.publish_content(\n    title=\"Scheduled Post\",\n    content=content,\n    status=\"future\",\n    date=publish_date.isoformat()\n)"
      },
      {
        "title": "Check Live Post",
        "body": "# Verify the published post\nverification = wp.verify_published_post(post_id)\n\nprint(f\"Live URL: {verification['url']}\")\nprint(f\"Status: {verification['status']}\")\nprint(f\"Categories: {verification['categories']}\")\nprint(f\"Tags: {verification['tags']}\")"
      },
      {
        "title": "Common Issues and Fixes",
        "body": "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"
      },
      {
        "title": "Complete Example Workflow",
        "body": "from scripts.wp_publisher import WordPressPublisher\nfrom scripts.content_to_gutenberg import convert_to_gutenberg\n\n# 1. Connect\nwp = WordPressPublisher(\n    site_url=\"https://xcloud.host\",\n    username=\"admin\",\n    password=\"xxxx xxxx xxxx xxxx\"\n)\n\n# 2. Load categories and select best match\ncategories = wp.get_categories_with_details()\nbest_category = wp.suggest_category(content, title, categories)\n\n# 3. Generate SEO tags\ntags = wp.generate_seo_tags(content, title, max_tags=10)\n\n# 4. Convert to Gutenberg\ngutenberg_content = convert_to_gutenberg(markdown_content)\n\n# 5. Create draft and preview\ndraft = wp.create_draft(\n    title=\"7 Best n8n Hosting Providers in 2026\",\n    content=gutenberg_content,\n    categories=[best_category['id']],\n    tags=wp.get_or_create_tags(tags)\n)\nprint(f\"Preview: {draft['preview_url']}\")\n\n# 6. After verification, publish\nresult = wp.publish_post(draft['post_id'])\nprint(f\"Published: {result['live_url']}\")"
      },
      {
        "title": "API Endpoints",
        "body": "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"
      },
      {
        "title": "Post Statuses",
        "body": "StatusDescriptionpublishLive and visibledraftSaved but not visiblependingAwaiting reviewprivateOnly visible to adminsfutureScheduled for later"
      },
      {
        "title": "Required Files",
        "body": "scripts/wp_publisher.py - Main publisher class\nscripts/content_to_gutenberg.py - Markdown/HTML converter\nreferences/gutenberg-blocks.md - Block format reference"
      },
      {
        "title": "Error Handling",
        "body": "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"
      },
      {
        "title": "Best Practices",
        "body": "Always preview first - Create as draft, verify, then publish\nUse application passwords - Never use regular WordPress password\nSelect appropriate category - Helps with site organization and SEO\nGenerate relevant tags - Improves Google discoverability\nValidate Gutenberg blocks - Ensure proper block structure\nKeep excerpts under 160 chars - Optimal for search snippets\nUse descriptive slugs - Include primary keyword in URL"
      }
    ],
    "body": "WordPress Publisher\n\nPublish content directly to WordPress sites using the REST API with full Gutenberg block formatting, automatic category selection, SEO tag generation, and preview capabilities.\n\nComplete Workflow Overview\n1. CONNECT    → Authenticate with WordPress site\n2. ANALYZE    → Load categories from site, analyze content for best match\n3. GENERATE   → Create SEO-optimized tags based on content\n4. CONVERT    → Transform markdown/HTML to Gutenberg blocks\n5. PREVIEW    → Create draft and verify rendering\n6. PUBLISH    → Publish or schedule the post\n7. VERIFY     → Confirm live post renders correctly\n\nStep 1: Connection Setup\nGet Credentials\n\nAsk user for:\n\nWordPress site URL (e.g., https://example.com)\nWordPress username\nApplication password (NOT regular password)\nHow to Create Application Password\n\nGuide user:\n\nGo to Users → Profile in WordPress admin\nScroll to Application Passwords section\nEnter name: Claude Publisher\nClick Add New Application Password\nCopy the generated password (shown only once, with spaces)\nTest Connection\nfrom scripts.wp_publisher import WordPressPublisher\n\nwp = WordPressPublisher(\n    site_url=\"https://example.com\",\n    username=\"admin\",\n    password=\"xxxx xxxx xxxx xxxx xxxx xxxx\"  # Application password\n)\n\n# Test connection\nuser_info = wp.test_connection()\nprint(f\"Connected as: {user_info['name']}\")\n\nStep 2: Load and Select Categories\nAuto-Load Categories from Site\n# Get all categories from the WordPress site\ncategories = wp.get_categories_with_details()\n\n# Returns list like:\n# [\n#   {'id': 1, 'name': 'Uncategorized', 'slug': 'uncategorized', 'count': 5},\n#   {'id': 2, 'name': 'Tutorials', 'slug': 'tutorials', 'count': 12},\n#   {'id': 3, 'name': 'Cloud Hosting', 'slug': 'cloud-hosting', 'count': 8},\n# ]\n\nSmart Category Selection\n\nThe system analyzes content and selects the most appropriate category:\n\n# Analyze content and suggest best category\nsuggested_category = wp.suggest_category(\n    content=article_content,\n    title=article_title,\n    available_categories=categories\n)\n\n# Or let user choose from available options\nprint(\"Available categories:\")\nfor cat in categories:\n    print(f\"  [{cat['id']}] {cat['name']} ({cat['count']} posts)\")\n\nCategory Selection Logic\nExact match - Title/content contains category name\nKeyword match - Category slug matches topic keywords\nParent category - Fall back to broader parent if no match\nCreate new - Create category if none fit (with user approval)\nStep 3: Generate SEO-Optimized Tags\nAutomatic Tag Generation\n\nGenerate tags that improve Google search visibility:\n\n# Generate tags based on content analysis\ntags = wp.generate_seo_tags(\n    content=article_content,\n    title=article_title,\n    max_tags=10\n)\n\n# Returns list like:\n# ['n8n hosting', 'workflow automation', 'self-hosted n8n', \n#  'affordable hosting', 'docker deployment', 'node.js hosting']\n\nTag Generation Rules\nPrimary keyword - Always include as first tag\nSecondary keywords - Include 2-3 related terms\nLong-tail keywords - Include 3-4 specific phrases\nEntity tags - Include product/brand names mentioned\nTopic tags - Include broader category terms\nCreate/Get Tags in WordPress\n# Get or create all tags, returns list of tag IDs\ntag_ids = wp.get_or_create_tags(tags)\n\nStep 4: Convert Content to Gutenberg Blocks\nMarkdown to Gutenberg\nfrom scripts.content_to_gutenberg import convert_to_gutenberg\n\n# Convert markdown content\ngutenberg_content = convert_to_gutenberg(markdown_content)\n\nSupported Conversions\nMarkdown\tGutenberg Block\n# Heading\twp:heading\n**bold**\t<strong> in paragraph\n- list item\twp:list\n1. ordered\twp:list {\"ordered\":true}\n\\``code````\twp:code\n> quote\twp:quote\n![alt](url)\twp:image\n| table |\twp:table\nTable Conversion (Critical for AI Content)\n\nTables are converted with proper Gutenberg structure:\n\n# Input markdown:\n| Feature | Plan A | Plan B |\n|---------|--------|--------|\n| Price   | $10    | $20    |\n\n# Output Gutenberg:\n<!-- wp:table -->\n<figure class=\"wp-block-table\"><table>\n  <thead><tr><th>Feature</th><th>Plan A</th><th>Plan B</th></tr></thead>\n  <tbody><tr><td>Price</td><td>$10</td><td>$20</td></tr></tbody>\n</table></figure>\n<!-- /wp:table -->\n\nStep 5: Preview Before Publishing\nCreate Draft for Preview\n# Create as draft first\nresult = wp.create_draft(\n    title=\"Article Title\",\n    content=gutenberg_content,\n    categories=[category_id],\n    tags=tag_ids,\n    excerpt=\"Auto-generated or custom excerpt\"\n)\n\npost_id = result['post_id']\npreview_url = result['preview_url']\nedit_url = result['edit_url']\n\nVerify Preview\n# Fetch preview page to verify rendering\npreview_content = wp.fetch_preview(post_id)\n\n# Check for issues\nissues = wp.validate_rendered_content(preview_content)\nif issues:\n    print(\"Issues found:\")\n    for issue in issues:\n        print(f\"  - {issue}\")\n\nPreview Checklist\n Title displays correctly\n All headings render (H2, H3, H4)\n Tables render with proper formatting\n Lists display correctly (bullet and numbered)\n Code blocks have syntax highlighting\n Images load (if any)\n Links are clickable\n Category shows correctly\n Tags display in post\nStep 6: Publish the Post\nPublish Draft\n# After preview approval, publish\nresult = wp.publish_post(post_id)\nlive_url = result['live_url']\n\nOr Create and Publish Directly\n# Full publish workflow in one call\nresult = wp.publish_content(\n    title=\"Article Title\",\n    content=gutenberg_content,\n    category_names=[\"Cloud Hosting\"],  # By name, auto-resolves to ID\n    tag_names=[\"n8n\", \"hosting\", \"automation\"],\n    status=\"publish\",  # or \"draft\", \"pending\", \"private\", \"future\"\n    excerpt=\"Custom excerpt for SEO\",\n    slug=\"custom-url-slug\"\n)\n\nScheduling Posts\n# Schedule for future publication\nfrom datetime import datetime, timedelta\n\npublish_date = datetime.now() + timedelta(days=1)\nresult = wp.publish_content(\n    title=\"Scheduled Post\",\n    content=content,\n    status=\"future\",\n    date=publish_date.isoformat()\n)\n\nStep 7: Verify Published Post\nCheck Live Post\n# Verify the published post\nverification = wp.verify_published_post(post_id)\n\nprint(f\"Live URL: {verification['url']}\")\nprint(f\"Status: {verification['status']}\")\nprint(f\"Categories: {verification['categories']}\")\nprint(f\"Tags: {verification['tags']}\")\n\nCommon Issues and Fixes\nIssue\tCause\tSolution\nTables not rendering\tMissing figure wrapper\tUse proper wp:table block structure\nCode not highlighted\tMissing language attribute\tAdd {\"language\":\"python\"} to code block\nImages broken\tWrong URL or missing media\tUpload to WordPress first, use media ID\nTags not showing\tTheme doesn't display tags\tCheck theme settings or use different theme\nComplete Example Workflow\nfrom scripts.wp_publisher import WordPressPublisher\nfrom scripts.content_to_gutenberg import convert_to_gutenberg\n\n# 1. Connect\nwp = WordPressPublisher(\n    site_url=\"https://xcloud.host\",\n    username=\"admin\",\n    password=\"xxxx xxxx xxxx xxxx\"\n)\n\n# 2. Load categories and select best match\ncategories = wp.get_categories_with_details()\nbest_category = wp.suggest_category(content, title, categories)\n\n# 3. Generate SEO tags\ntags = wp.generate_seo_tags(content, title, max_tags=10)\n\n# 4. Convert to Gutenberg\ngutenberg_content = convert_to_gutenberg(markdown_content)\n\n# 5. Create draft and preview\ndraft = wp.create_draft(\n    title=\"7 Best n8n Hosting Providers in 2026\",\n    content=gutenberg_content,\n    categories=[best_category['id']],\n    tags=wp.get_or_create_tags(tags)\n)\nprint(f\"Preview: {draft['preview_url']}\")\n\n# 6. After verification, publish\nresult = wp.publish_post(draft['post_id'])\nprint(f\"Published: {result['live_url']}\")\n\nQuick Reference\nAPI Endpoints\nResource\tEndpoint\nPosts\t/wp-json/wp/v2/posts\nPages\t/wp-json/wp/v2/pages\nCategories\t/wp-json/wp/v2/categories\nTags\t/wp-json/wp/v2/tags\nMedia\t/wp-json/wp/v2/media\nPost Statuses\nStatus\tDescription\npublish\tLive and visible\ndraft\tSaved but not visible\npending\tAwaiting review\nprivate\tOnly visible to admins\nfuture\tScheduled for later\nRequired Files\nscripts/wp_publisher.py - Main publisher class\nscripts/content_to_gutenberg.py - Markdown/HTML converter\nreferences/gutenberg-blocks.md - Block format reference\nError Handling\nError Code\tMeaning\tSolution\n401\tInvalid credentials\tCheck username and application password\n403\tInsufficient permissions\tUser needs Editor or Admin role\n404\tEndpoint not found\tVerify REST API is enabled\n400\tInvalid data\tCheck category/tag IDs exist\n500\tServer error\tRetry or check WordPress error logs\nBest Practices\nAlways preview first - Create as draft, verify, then publish\nUse application passwords - Never use regular WordPress password\nSelect appropriate category - Helps with site organization and SEO\nGenerate relevant tags - Improves Google discoverability\nValidate Gutenberg blocks - Ensure proper block structure\nKeep excerpts under 160 chars - Optimal for search snippets\nUse descriptive slugs - Include primary keyword in URL"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/Asif2BD/wordpress-publishing-skill-for-claude",
    "publisherUrl": "https://clawhub.ai/Asif2BD/wordpress-publishing-skill-for-claude",
    "owner": "Asif2BD",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/wordpress-publishing-skill-for-claude",
    "downloadUrl": "https://openagent3.xyz/downloads/wordpress-publishing-skill-for-claude",
    "agentUrl": "https://openagent3.xyz/skills/wordpress-publishing-skill-for-claude/agent",
    "manifestUrl": "https://openagent3.xyz/skills/wordpress-publishing-skill-for-claude/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/wordpress-publishing-skill-for-claude/agent.md"
  }
}