通过REST API直接向WordPress网站发布内容,支持完整Gutenberg块编辑。创建并发布文章/页面,自动加载选择分类,生成SEO优化标签,发布前预览,生成表格、图片、列表及富文本Gutenberg块。适用于发布WordPress、写博客、更新文章或转换Markdown为Gutenberg块。
WordPress Publisher. 直接将内容移植到WordPress网站,使用 REST API , 并使用 Gutenberg 块格式化的完整格式, 是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
通过 REST API 直接向 WordPress 站点发布内容,完整支持 Gutenberg 区块格式、自动分类选择、SEO 标签生成及预览功能。
1. CONNECT → 与 WordPress 站点完成身份认证
2. ANALYZE → 加载站点分类,并分析内容以匹配最合适的分类
3. GENERATE → 基于内容生成 SEO 优化的标签
4. CONVERT → 将 Markdown/HTML 转换为 Gutenberg 区块
5. PREVIEW → 创建草稿并验证渲染效果
6. PUBLISH → 发布或定时发布文章
7. VERIFY → 确认线上文章渲染正确无误
请用户提供以下信息:
https://example.com)指导用户操作:
Claude Publisherfrom scripts.wp_publisher import WordPressPublisher
wp = WordPressPublisher(
site_url="https://example.com",
username="admin",
password="xxxx xxxx xxxx xxxx xxxx xxxx" # 应用密码
)
# 测试连接
user_info = wp.test_connection()
print(f"已登录用户:{user_info['name']}")
# 从 WordPress 站点获取全部分类
categories = wp.get_categories_with_details()
# 返回示例:
# [
# {'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},
# ]
系统将分析内容并自动推荐最匹配的分类:
# 分析内容并推荐最佳分类
suggested_category = wp.suggest_category(
content=article_content,
title=article_title,
available_categories=categories
)
# 或由用户从可用选项中手动选择
print("可用分类:")
for cat in categories:
print(f" [{cat['id']}] {cat['name']} ({cat['count']} 篇文章)")
生成有助于提升 Google 搜索可见性的标签:
# 基于内容分析生成标签
tags = wp.generate_seo_tags(
content=article_content,
title=article_title,
max_tags=10
)
# 返回示例:
# ['n8n hosting', 'workflow automation', 'self-hosted n8n',
# 'affordable hosting', 'docker deployment', 'node.js hosting']
# 获取或创建所有标签,返回标签 ID 列表
tag_ids = wp.get_or_create_tags(tags)
from scripts.content_to_gutenberg import convert_to_gutenberg
# 转换 Markdown 内容
gutenberg_content = convert_to_gutenberg(markdown_content)
| Markdown | Gutenberg 区块 |
|---|---|
# Heading |
wp:heading |
**bold** |
(嵌入段落内) |
- list item |
wp:list |
1. ordered |
wp:list {"ordered":true} |
``code`` |
wp:code |
> quote |
wp:quote |
 |
wp:image |
| table | |
wp:table |
表格将被转换为符合 Gutenberg 规范的结构:
# 输入 Markdown:
| Feature | Plan A | Plan B |
|---------|--------|--------|
| Price | $10 | $20 |
# 输出 Gutenberg:
Feature Plan A Plan B
Price $10 $20
# 首先创建为草稿
result = wp.create_draft(
title="Article Title",
content=gutenberg_content,
categories=[category_id],
tags=tag_ids,
excerpt="自动生成或自定义摘要"
)
post_id = result['post_id']
preview_url = result['preview_url']
edit_url = result['edit_url']
# 获取预览页面以验证渲染结果
preview_content = wp.fetch_preview(post_id)
# 检查潜在问题
issues = wp.validate_rendered_content(preview_content)
if issues:
print("发现问题:")
for issue in issues:
print(f" - {issue}")
# 经预览确认后发布
result = wp.publish_post(post_id)
live_url = result['live_url']
# 单次调用完成全流程发布
result = wp.publish_content(
title="Article Title",
content=gutenberg_content,
category_names=["Cloud Hosting"], # 按名称传入,自动解析为 ID
tag_names=["n8n", "hosting", "automation"],
status="publish", # 或 "draft"、"pending"、"private"、"future"
excerpt="面向 SEO 的自定义摘要",
slug="custom-url-slug"
)
# 设置未来发布时间
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()
)
# 验证已发布的文章
verification = wp.verify_published_post(post_id)
print(f"线上地址:{verification['url']}")
print(f"状态:{verification['status']}")
print(f"分类:{verification['categories']}")
print(f"标签:{verification['tags']}")
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 表格未渲染 | 缺少 figure 包裹器 |
使用标准 wp:table 区块结构 |
| 代码无高亮 | 缺失语言属性 | 为代码区块添加 {"language":"python"} |
| 图片损坏 | URL 错误或媒体未上传 | 先上传至 WordPress,再使用媒体 ID 引用 |
| 标签未显示 | 主题未启用标签展示 | 检查主题设置,或更换支持标签的主题 |
from scripts.wp_publisher import WordPressPublisher
from scripts.content_to_gutenberg import convert_to_gutenberg
# 1. 连接
wp = WordPressPublisher(
site_url="https://xcloud.host",
username="admin",
password="xxxx xxxx xxxx xxxx"
)
# 2. 加载分类并选择最优匹配
categories = wp.get_categories_with_details()
best_category = wp.suggest_category(content, title, categories)
# 3. 生成 SEO 标签
tags = wp.generate_seo_tags(content, title, max_tags=10)
# 4. 转换为 Gutenberg 区块
gutenberg_content = convert_to_gutenberg(markdown_content)
# 5. 创建草稿并预览
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"预览地址:{draft['preview_url']}")
# 6. 经验证后发布
result = wp.publish_post(draft['post_id'])
print(f"已发布:{result['live_url']}")
| 资源 | 端点 |
|---|---|
| 文章 | /wp-json/wp/v2/posts |
| 页面 | /wp-json/wp/v2/pages |
| 分类 | /wp-json/wp/v2/categories |
| 标签 | /wp-json/wp/v2/tags |
| 媒体 | /wp-json/wp/v2/media |
| 状态 | 说明 |
|---|---|
publish |
已上线且公开可见 |
draft |
已保存但不可见 |
pending |
待审核 |
private |
仅管理员可见 |
future |
已设定发布时间 |
scripts/wp_publisher.py — 主发布器类scripts/content_to_gutenberg.py — Markdown/HTML 转换器references/gutenberg-blocks.md — 区块格式参考文档| 错误码 | 含义 | 解决方案 |
|---|---|---|
| 401 | 凭据无效 | 检查用户名和应用密码是否正确 |
| 403 | 权限不足 | 用户需具备 Editor 或 Admin 角色 |
| 404 | 端点未找到 | 确认 WordPress REST API 已启用 |
| 400 | 数据无效 | 检查所用分类/标签 ID 是否真实存在 |
| 500 | 服务器错误 | 重试请求,或检查 WordPress 错误日志 |
相关专题
热门下载
相关下载
精品课程
共1课时 | 193人学习
共1课时 | 140人学习
共98课时 | 11.4万人学习
最新文章