Token导航 LogoToken导航TokenDH.com
研究检索需要联网clawhub未标认证来源可访问clear审计提醒

wordpress-bloggerWordPress blogger 搜索

Agent Skill

wordpress-blogger 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

3,420

周安装

137

GitHub Stars

1

下载量

1,107
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:wordpress-blogger(WordPress blogger 搜索)
来源仓库:https://github.com/hugogu/wordpress-blogger
安装命令:
openclaw skills install wordpress-blogger
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install wordpress-blogger

简介

wordpress-blogger 用于查找、检索和筛选相关信息,适合在 OpenClaw 中根据关键词快速定位候选结果。

  • 适用于内容发布前的信息调研、博客文章素材收集或 WordPress 站点内容管理场景。
  • 通过 REST API 将文章发布到 WordPress 博客,支持帖子创建、类别标签管理和 SEO 友好的英文 slug 生成。
  • 安装命令为 openclaw skills install wordpress-blogger,需确认权限范围和联网能力。
  • 建议结合来源仓库 README 核验具体用法,注意维护状态及是否触发文件读写操作。

SKILL.md

name
wordpress-blogger
description
>
license
MIT
allowed-tools
Bash

WordPress Blog Publisher

Publish articles to WordPress blogs safely with automatic category/tag management and English URL slugs.


Prerequisites

WordPress credentials must be configured in the workspace .env file:

# WordPress Blog Credentials
WP_BLOG_URL="https://blog.example.com"      # Blog base URL (no trailing slash)
WP_USERNAME="your_username"                  # WordPress admin username
WP_APP_PASSWORD="xxxx xxxx xxxx xxxx xxxx"   # Application password

How to create an Application Password:

  1. Log in to WordPress admin dashboard
  2. Go to Users → Profile
  3. Scroll to "Application Passwords" section
  4. Click "Add New Application Password"
  5. Copy the generated password

Step 1 — Read Credentials

Read credentials from workspace .env:

# Load credentials from .env file
source /root/.openclaw/workspace/.env

WP_URL="${WP_BLOG_URL:-https://blog.example.com}"
WP_USER="${WP_USERNAME:-admin}"
WP_PASS="${WP_APP_PASSWORD}"

# Verify credentials exist
if [ -z "$WP_PASS" ]; then
  echo "❌ Error: WP_APP_PASSWORD not found in .env file"
  exit 1
fi

Step 2 — Analyze Content & Generate Metadata

Before publishing, analyze the article content to generate appropriate metadata:

Generate English Slug

Create a URL-friendly English slug from the article title or content:

  • Use lowercase with hyphens as separators
  • Keep it under 50 characters when possible
  • Include main keywords
  • Remove stop words (a, an, the, and, or, etc.)

Examples:

  • "AMD Ryzen 9 7950X vs Intel Core i9-13900K: A Detailed Benchmark Comparison" → ryzen-7950x-vs-i9-13900k-benchmark-comparison
  • "How to Optimize Database Performance in Production" → optimize-database-performance-production
  • "Understanding Container Orchestration with Kubernetes" → understanding-container-orchestration-kubernetes

Suggest Categories & Tags

Based on article content, suggest appropriate WordPress categories and tags:

Content TypeSuggested CategoriesSuggested Tags
Hardware reviewsHardware, ReviewsCPU, benchmark, performance, AMD, Intel
Software developmentDevelopment, Programmingcoding, best-practices, architecture
AI/LLM relatedAI, Technologymachine-learning, LLM, artificial-intelligence
Career developmentCareercareer-growth, soft-skills, productivity
DevOps/InfrastructureDevOps, Infrastructuredocker, kubernetes, ci-cd, cloud

If user doesn't specify, use these reasonable defaults:

  • Category: Based on content topic (create if not exists)
  • Tags: Extract 2-4 keywords from content

Step 3 — Create Category (if needed)

Check if category exists, create if not:

CATEGORY_NAME="Hardware"  # Use suggested or user-specified category

# Try to find existing category
CAT_ID=$(curl -s "${WP_URL}/wp-json/wp/v2/categories?search=${CATEGORY_NAME}&per_page=1" \
  -u "${WP_USER}:${WP_PASS}" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)

# Create if not exists
if [ -z "$CAT_ID" ]; then
  CAT_RESULT=$(curl -s -X POST "${WP_URL}/wp-json/wp/v2/categories" \
    -u "${WP_USER}:${WP_PASS}" \
    -H "Content-Type: application/json" \
    -d "{\"name\": \"${CATEGORY_NAME}\"}")
  CAT_ID=$(echo "$CAT_RESULT" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
fi

echo "Category ID: $CAT_ID"

Step 4 — Create Tags (if needed)

For each tag, check existence and create if needed:

TAGS=("CPU" "Benchmark" "AMD" "Performance")  # Use suggested or user-specified tags
TAG_IDS=""

for TAG in "${TAGS[@]}"; do
  # Try to find existing tag
  TID=$(curl -s "${WP_URL}/wp-json/wp/v2/tags?search=${TAG}&per_page=1" \
    -u "${WP_USER}:${WP_PASS}" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
  
  # Create if not exists
  if [ -z "$TID" ]; then
    TAG_RESULT=$(curl -s -X POST "${WP_URL}/wp-json/wp/v2/tags" \
      -u "${WP_USER}:${WP_PASS}" \
      -H "Content-Type: application/json" \
      -d "{\"name\": \"${TAG}\"}")
    TID=$(echo "$TAG_RESULT" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
  fi
  
  TAG_IDS="${TAG_IDS},${TID}"
done

# Remove leading comma
TAG_IDS=$(echo "$TAG_IDS" | sed 's/^,//')
echo "Tag IDs: $TAG_IDS"

Step 5 — Create or Update Post

Create New Post

TITLE="AMD Ryzen 9 7950X vs Intel Core i9-13900K: A Detailed Benchmark Comparison"
CONTENT="<p>In this comprehensive benchmark analysis...</p>"  # Convert markdown to HTML
SLUG="ryzen-7950x-vs-i9-13900k-benchmark-comparison"
EXCERPT="We compare two flagship processors across gaming, productivity, and power efficiency."

# Create post
POST_RESULT=$(curl -s -X POST "${WP_URL}/wp-json/wp/v2/posts" \
  -u "${WP_USER}:${WP_PASS}" \
  -H "Content-Type: application/json" \
  -d "{
    \"title\": \"${TITLE}\",
    \"content\": \"${CONTENT}\",
    \"slug\": \"${SLUG}\",
    \"status\": \"publish\",
    \"categories\": [${CAT_ID}],
    \"tags\": [${TAG_IDS}],
    \"excerpt\": \"${EXCERPT}\"
  }")

POST_ID=$(echo "$POST_RESULT" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
echo "Created post ID: $POST_ID"

Update Existing Post

If updating an existing post (e.g., adding categories/tags to a draft):

POST_ID="123"  # Existing post ID

UPDATE_RESULT=$(curl -s -X POST "${WP_URL}/wp-json/wp/v2/posts/${POST_ID}" \
  -u "${WP_USER}:${WP_PASS}" \
  -H "Content-Type: application/json" \
  -d "{
    \"categories\": [${CAT_ID}],
    \"tags\": [${TAG_IDS}],
    \"slug\": \"${SLUG}\"
  }")

Step 6 — Generate Public URL

Construct the public viewing URL (not the API endpoint):

# WordPress permalink structure: /{slug}/
PUBLIC_URL="${WP_URL}/${SLUG}/"

# If slug not set, use post ID format
if [ -z "$SLUG" ]; then
  PUBLIC_URL="${WP_URL}/?p=${POST_ID}"
fi

echo "✅ Article published successfully!"
echo ""
echo "📄 Title: ${TITLE}"
echo "🔗 URL: ${PUBLIC_URL}"
echo "📁 Category: ${CATEGORY_NAME}"
echo "🏷️ Tags: ${TAGS[*]}"

Content Conversion

Markdown to HTML

WordPress content field requires HTML. Convert markdown:

MarkdownHTML
# Title<h1>Title</h1>
## Subtitle<h2>Subtitle</h2>
### H3<h3>H3</h3>
**bold**<strong>bold</strong>
*italic*<em>italic</em>
- list item<ul><li>list item</li></ul>
1. item<ol><li>item</li></ol>
[text](url)<a href="url">text</a>
` code `<code>code</code>
```code block```<pre><code>code block</code></pre>

Handling Special Characters

Escape double quotes in content when building JSON:

# Escape quotes for JSON
ESCAPED_CONTENT=$(echo "$CONTENT" | sed 's/"/\\"/g')

Complete Workflow Example

#!/bin/bash

# Load credentials
source /root/.openclaw/workspace/.env
WP_URL="${WP_BLOG_URL:-https://blog.example.com}"
WP_USER="${WP_USERNAME:-admin}"
WP_PASS="${WP_APP_PASSWORD}"

# Article content - CPU Benchmark example
TITLE="AMD Ryzen 9 7950X vs Intel Core i9-13900K: A Detailed Benchmark Comparison"
SLUG="ryzen-7950x-vs-i9-13900k-benchmark-comparison"
CATEGORY="Hardware"
TAGS=("CPU" "Benchmark" "AMD" "Intel" "Performance")

CONTENT="<p>The battle for desktop CPU supremacy continues...</p><h2>Test Methodology</h2><p>All tests were conducted on identical platforms...</p>"

# Step 1: Create/Get Category
CAT_RESULT=$(curl -s -X POST "${WP_URL}/wp-json/wp/v2/categories" \
  -u "${WP_USER}:${WP_PASS}" \
  -H "Content-Type: application/json" \
  -d "{\"name\": \"${CATEGORY}\"}")
CAT_ID=$(echo "$CAT_RESULT" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)

# Step 2: Create/Get Tags
TAG_IDS=""
for TAG in "${TAGS[@]}"; do
  TAG_RESULT=$(curl -s -X POST "${WP_URL}/wp-json/wp/v2/tags" \
    -u "${WP_USER}:${WP_PASS}" \
    -H "Content-Type: application/json" \
    -d "{\"name\": \"${TAG}\"}")
  TID=$(echo "$TAG_RESULT" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
  TAG_IDS="${TAG_IDS},${TID}"
done
TAG_IDS=$(echo "$TAG_IDS" | sed 's/^,//')

# Step 3: Create Post
POST_RESULT=$(curl -s -X POST "${WP_URL}/wp-json/wp/v2/posts" \
  -u "${WP_USER}:${WP_PASS}" \
  -H "Content-Type: application/json" \
  -d "{
    \"title\": \"${TITLE}\",
    \"content\": \"${CONTENT}\",
    \"slug\": \"${SLUG}\",
    \"status\": \"publish\",
    \"categories\": [${CAT_ID}],
    \"tags\": [${TAG_IDS}]
  }")

POST_ID=$(echo "$POST_RESULT" | grep -o '"id":[0-9]*' | head -1 | cut -d: -f2)
PUBLIC_URL="${WP_URL}/${SLUG}/"

echo "✅ Published: ${PUBLIC_URL}"

Error Handling

Common Errors

ErrorCauseSolution
401 UnauthorizedInvalid credentialsCheck username and app password
403 ForbiddenInsufficient permissionsUse admin account or check user capabilities
rest_cannot_createMissing edit_posts capabilityVerify user has publishing permissions
term_existsCategory/tag already existsFetch existing ID instead of creating

API Response Check

Always check API responses for errors:

if echo "$RESULT" | grep -q '"code":"'; then
  ERROR_CODE=$(echo "$RESULT" | grep -o '"code":"[^"]*"' | head -1)
  ERROR_MSG=$(echo "$RESULT" | grep -o '"message":"[^"]*"' | head -1)
  echo "❌ API Error: $ERROR_CODE - $ERROR_MSG"
  exit 1
fi

Safety Rules

  • ✅ Always generate English slug for SEO-friendly URLs
  • ✅ Create reasonable category/tags if user doesn't specify
  • ✅ Return public viewing URL, not API endpoint
  • ✅ Escape content properly for JSON payload
  • ✅ Verify credentials before attempting API calls
  • ❌ Never hardcode credentials in scripts
  • ❌ Never return API URLs (with /wp-json/) as the result

Response Format

After successful publication, respond with:

✅ Article published successfully!

📄 Title: [Article Title]
🔗 URL: [Public Viewing URL]
📁 Category: [Category Name]
🏷️ Tags: [Tag List]

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

92.07%
按下载量换算1,019

安全审计

VirusTotal

通过

ClawScan

可疑

Static analysis

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills