详解如何使用 WordPress REST API 实现文章自动化发布,包括质量审核、内容生成与定时发布。
🎯 为什么需要自动化发布?
手动发布 WordPress 文章存在以下痛点:
- 效率低:每篇文章需要手动复制粘贴、格式化
- 易出错:格式错误、标签遗漏、分类错误
- 难追溯:发布记录分散,难以统一管理
- 无审核:缺少自动化质量检查流程
📋 发布前审核标准
强制执行 7 步审核流程,确保文章质量:
| 步骤 | 检查项 | 合格标准 | 权重 |
|---|---|---|---|
| 1. 内容编写 | 正文字数 | ≥500 字符 | 30 分 |
| 2. 格式检查 | Markdown 符号 | 无 #, *, ` | 30 分 |
| 3. 内容自查 | 可读性 | 语句通顺 | – |
| 4. 自评分 | 综合评分 | ≥80 分 | 25 分 |
| 5. 重复检查 | 标题重复 | 无重复 | 15 分 |
| 6. 修订循环 | 不合格处理 | 修订至合格 | – |
| 7. 发布确认 | 最终检查 | 所有项✅ | – |
🔧 WordPress REST API
WordPress 提供完整的 REST API 用于自动化操作:
认证方式
# 使用应用密码(推荐)
# 生成路径:wp-admin/profile.php → 应用密码
# 示例凭证
用户名:XIAOYU
应用密码:B8QB KaFq OXzW WRfK qZkP Phwi
# API 基础 URL
BASE_URL="https://www.xasss.cn/wp-json/wp/v2"
发布文章
#!/usr/bin/env python3
import requests
import json
from datetime import datetime
# 配置
WP_URL = "https://www.xasss.cn/wp-json/wp/v2/posts"
WP_USER = "XIAOYU"
WP_APP_PASSWORD = "B8QB KaFq OXzW WRfK qZkP Phwi"
# 文章内容
post_data = {
"title": "文章标题",
"content": "<!-- wp:paragraph -->\n<p>正文内容</p>\n<!-- /wp:paragraph -->",
"status": "publish", # 或 draft, future
"categories": [1],
"date": "2026-04-19T14:00:00+08:00" # 定时发布
}
# 发布
response = requests.post(
WP_URL,
auth=(WP_USER, WP_APP_PASSWORD),
json=post_data
)
if response.status_code == 201:
print(f"✅ 发布成功!ID: {response.json()['id']}")
print(f"链接:{response.json()['link']}")
else:
print(f"❌ 发布失败:{response.text}")
批量发布
import json
import subprocess
# 读取文章列表
with open('posts_batch.json', 'r', encoding='utf-8') as f:
posts = json.load(f)
# 批量发布
for i, post in enumerate(posts, 1):
print(f"[{i}/{len(posts)}] 发布:{post['title']}")
# 使用 curl 发布
cmd = [
'curl', '-s', '-X', 'POST',
'--user', f'{WP_USER}:{WP_APP_PASSWORD}',
WP_URL,
'-H', 'Content-Type: application/json',
'-d', json.dumps(post, ensure_ascii=False)
]
result = subprocess.run(cmd, capture_output=True, text=True)
response = json.loads(result.stdout)
if 'id' in response:
print(f" ✅ 成功!ID: {response['id']}")
else:
print(f" ❌ 失败:{response}")
📊 质量审核脚本
自动化审核 WordPress 文章质量:
#!/usr/bin/env python3
import requests
import re
WP_URL = "https://www.xasss.cn/wp-json/wp/v2/posts"
WP_USER = "XIAOYU"
WP_PASSWORD = "B8QB KaFq OXzW WRfK qZkP Phwi"
def audit_post(post):
"""审核单篇文章"""
score = 0
issues = []
content = post['content']['rendered']
title = post['title']['rendered']
# 1. 字数检查(30 分)
clean_content = re.sub(r'<[^>]+>', '', content)
char_count = len(clean_content)
if char_count >= 2000:
score += 30
elif char_count >= 1000:
score += 20
elif char_count >= 500:
score += 10
else:
issues.append(f"字数不足 ({char_count}字符)")
# 2. Markdown 检查(30 分)
if re.search(r'[#*`]{1,}', content):
issues.append("存在 Markdown 符号")
else:
score += 30
# 3. 内容质量(25 分)
if '[详细内容需要 AI 生成]' in content:
issues.append("内容为占位符")
elif char_count >= 1000:
score += 20
else:
score += 5
# 4. 标题唯一性(15 分)
# 需要与其他文章对比
return {
'id': post['id'],
'title': title,
'score': score,
'issues': issues,
'passed': score >= 80
}
# 获取所有文章
response = requests.get(
WP_URL,
auth=(WP_USER, WP_PASSWORD),
params={'per_page': 100}
)
posts = response.json()
# 审核每篇文章
results = []
for post in posts:
result = audit_post(post)
results.append(result)
if not result['passed']:
print(f"❌ {result['title']}: {result['score']}分")
print(f" 问题:{', '.join(result['issues'])}")
# 统计
passed = sum(1 for r in results if r['passed'])
print(f"\n合格率:{passed}/{len(results)} ({passed/len(results)*100:.1f}%)")
🗑️ 批量删除
删除不合格文章:
#!/bin/bash
# 不合格文章 ID 列表
ARTICLE_IDS="1595 1594 1593 1592 1591 1590"
WP_USER="XIAOYU"
WP_PASSWORD="B8QB KaFq OXzW WRfK qZkP Phwi"
BASE_URL="https://www.xasss.cn/wp-json/wp/v2/posts"
# 批量删除
for id in $ARTICLE_IDS; do
echo "删除文章 $id..."
curl -s -X DELETE \
--user "$WP_USER:$WP_PASSWORD" \
"$BASE_URL/$id?force=true"
echo ""
done
echo "✅ 删除完成"
📈 实战案例
本周 WordPress 内容维护完整流程:
- 审核:检查本周 15 篇文章,合格率 0%
- 清理:删除所有不合格文章
- 生成:创建符合标准的新内容(15 篇)
- 审核:执行 7 步审核流程,确保≥80 分
- 发布:批量发布到 WordPress,恢复对应日期
执行结果:
📊 发布汇总
- OpenClaw 每日速递:3 篇(ID: 1596, 1597, 1598)
- AI 技术教程:4 篇(ID: 待发布)
- 深度思考:8 篇(ID: 待发布)
✅ 合格率:100%
✅ 平均字数:2500+ 字符
✅ 格式:纯 HTML
✅ 标题:唯一
💡 最佳实践
- 定时发布:使用 date 参数设置准确的发布时间
- 分类管理:提前创建好分类,发布时指定 ID
- 标签策略:每篇文章添加 3-5 个相关标签
- 特色图片:使用 featured_media 设置封面图
- 版本控制:发布前保存草稿版本
- 错误处理:捕获 API 错误并记录日志
- 速率限制:批量发布时添加延迟,避免触发限流
🔮 未来优化
- AI 生成:集成大模型自动生成文章内容
- 智能审核:使用 AI 进行内容质量评估
- 自动配图:根据内容自动生成特色图片
- SEO 优化:自动添加 meta 描述和关键词
- 多平台同步:一键发布到多个平台(公众号、知乎等)
通过自动化发布流程,可以显著提升内容管理效率,确保文章质量,同时减少人工操作错误。
虾米生活分享

评论前必须登录!
注册