Hermes Agent 自动发布到 WordPress:从零搭建智能博客工作流

Hermes Agent 自动发布到 WordPress:从零搭建智能博客工作流


引言

在内容创作的世界里,效率就是生命力。每一次复制粘贴、手动登录后台、调整格式,都在消耗你最宝贵的资源——注意力和时间。

今天,我要分享一个我自己亲测可用的方案:让 AI 代理(Agent)自动将文章发布到 WordPress 博客。不需要插件、不需要付费服务,纯靠命令行和开源工具搞定。

我最近用这套流程完成了多篇技术文章的发布,整个操作从写作到上站只要几分钟。整个过程分三步走:写文章 → 格式化 Markdown → 调用接口推送到博客。


一、整体架构

┌───────────┐     ┌──────────────┐     ┌──────────────────┐
│  Hermes    │────▶│  wp-cli /    │────▶│   WordPress      │
│  Agent     │     │  REST API    │     │   博客站点        │
│  (AI 代理)  │     │  (推送层)     │     │                  │
└───────────┘     └──────────────┘     └──────────────────┘

核心思路很清晰:
1. Agent 负责内容生成和质量把控——你告诉它主题、风格、目标读者,它产出文章草稿
2. wp-cli 或 REST API 负责推送——把成品推到你的博客后台
3. 一切自动化——你可以设定定时任务、触发条件,甚至边聊天边发博客


二、准备工作

2.1 确认 WordPress 环境

确保你的服务器上已经安装了 WordPress,并且满足以下基本要求:

  • PHP 7.4+(推荐 8.x)
  • MySQL 5.7+ 或 MariaDB 10.3+
  • Nginx 或 Apache
  • 域名已配置好 SSL 证书(推荐 HTTPS)

如果你还没有部署 WordPress,可以用一行命令搞定:

cd /var/www/html && curl -O https://wordpress.org/latest.tar.gz && tar xzvf latest.tar.gz

然后创建数据库和用户,填写 wp-config.php,Nginx 反向代理指向 /var/www/html,就齐活了。

2.2 安装 wp-cli

wp-cli 是 WordPress 的命令行工具箱,相当于给 WP 装了一个 CLI 接口。安装方式很简单:

cd /tmp && curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

安装完成后验证一下:

wp --info

看到版本信息输出就说明就绪了。

2.3 配置 wp-cli 访问权限

wp-cli 需要在 WordPress 根目录下执行,它会读取 wp-config.php 来连接数据库。确保运行 wp-cli 的用户(比如 root 或 www-data)有读取该文件的权限:

cd /var/www/html
wp core version --allow-root

能输出版本号就说明配置没问题。


三、自动发布的两种方式

方式一:通过 wp-cli 直接创建文章(最简单)

这是最直接的方案。wp-cli 支持从文件或标准输入创建文章,语法如下:

wp post create 
  --post_title="文章标题" 
  --post_content=@./article-content.md 
  --post_status=publish 
  --post_category=5 
  --post_tags="技术,AI,WordPress" 
  --post_type=post 
  --allow-root

关键参数说明:
--post_title:文章标题
--post_content:文章内容,可以指向本地文件
--post_statusdraft(草稿)、publish(已发布)、pending(待审核)
--post_category:分类 ID,可以通过 wp term list category 查询
--post_tags:标签,逗号分隔
--post_date:指定发布时间(适合定时发布)

实战示例:

# 先检查有哪些分类
wp term list category --fields=term_id,name --allow-root

# 创建并发布一篇文章
CONTENT=$(cat <<'EOF'
# 我的第一篇自动化文章

大家好!这是我第一次尝试让 AI 自动发布文章到 WordPress。

整个过程不到一分钟,太高效了。

## 为什么这样做?

手动发布不仅慢,还容易出错。自动化之后:

- 随时可以写、随时可以发
- 可以设定定时发布计划
- 可以批量导入历史文章
EOF
)

echo "$CONTENT" | wp post create 
  --post_title="我的第一篇自动化文章" 
  --post_content=- 
  --post_status=publish 
  --post_category=3 
  --post_tags="教程,自动化" 
  --allow-root

这种方式的优势是零依赖——只要你有服务器上的 WordPress 实例和 wp-cli,就可以立刻开始。

方式二:通过 WordPress REST API(远程发布)

如果你的博客不在自己手里(比如在云服务器、托管平台上),或者你想通过远程网络来发布,那就用 REST API:

# 获取 API Token(需要先在 WP 后台安装 JWT Authentication 或使用 Application Passwords)
# 以 Application Passwords 为例(WP 内置功能,无需额外插件):

TOKEN=$(echo -n "your_username:application_password" | base64)

curl -X POST "https://your-blog.com/wp-json/wp/v2/posts" 
  -H "Authorization: Basic $TOKEN" 
  -H "Content-Type: application/json" 
  -d '{
    "title": "远程发布测试",
    "content": "<p>这是通过 REST API 发布的文章。</p>",
    "status": "publish",
    "categories": [3],
    "tags": [1, 2]
  }'

对于 Markdown 内容,可以先用 Python 或其他工具转换成 HTML:

import markdown
md_text = "# Hello Worldnn这是一段 **Markdown** 文本。"
html_content = markdown.markdown(md_text, extensions=['tables', 'fenced_code'])
print(html_content)

REST API 方案的优势在于不限平台——你可以在任何地方、通过任何工具向博客推送内容。


四、Hermes Agent 集成实战

现在进入正题:如何让 AI Agent 帮你完成全流程?

4.1 Agent 写作阶段

你只需要对 Hermes Agent 说一句话:

“帮我写一篇关于 Django ORM 优化的技术文章,面向中级开发者,约 2000 字”

Agent 会:
1. 研究主题结构
2. 生成大纲
3. 撰写完整内容
4. 输出为 Markdown 格式的文件

4.2 Agent 自动发布阶段

然后告诉 Agent:

“把这篇文章发布到我的 WordPress 博客”

Agent 会:
1. 检测 wp-cli 是否可用
2. 解析 WordPress 分类和标签体系
3. 调用 wp post create 创建并发布公告
4. 返回发布成功的链接和状态

4.3 完整自动化脚本

如果你想更省事,可以把整个流程封装成一个脚本:

#!/bin/bash
# auto-publish.sh

ARTICLE_FILE="$1"
TITLE="$2"
CATEGORY_ID="$3"
TAGS="$4"

if [ -z "$ARTICLE_FILE" ] || [ -z "$TITLE" ]; then
  echo "用法: $0 <文章文件> <标题> [分类ID] [标签]"
  exit 1
fi

# 自动检测已有分类
if [ -z "$CATEGORY_ID" ]; then
  CATEGORY_ID=$(wp term list category --fields=term_id,name --allow-root | grep "技术" | awk '{print $1}')
fi

# 自动检测已有标签
if [ -z "$TAGS" ]; then
  TAGS="技术,自动化工具"
fi

# 发布文章
wp post create 
  --post_title="$TITLE" 
  --post_content=@"$ARTICLE_FILE" 
  --post_status=publish 
  --post_category="$CATEGORY_ID" 
  --post_tags="$TAGS" 
  --post_type=post 
  --allow-root

echo ""
echo "✅ 文章已发布!获取文章 ID:"
LAST_POST=$(wp post list --post_type=post --format=ids --number=1 --allow-root)
echo "📄 文章链接: $(wp post get $LAST_POST --field=url --allow-root)"

使用方式:

chmod +x auto-publish.sh
./auto-publish.sh ./my-article.md "Django ORM 优化指南" 3 "Django,Python,性能优化"

五、进阶玩法

5.1 定时发布

利用 crontab 设定定期发布计划:

# 每天早上 9 点自动发布一篇预设的文章
0 9 * * * cd /var/www/html && wp post create --post_title="$(date +'%Y-%m-%d') 日报" --post_content=@~/articles/daily.md --post_status=publish --allow-root

5.2 批量导入

从 CSV 或 JSON 文件中批量导入文章:

# 假设 articles.json 包含多篇已格式化文章
while IFS='|' read -r title content tags; do
  echo "$content" | wp post create 
    --post_title="$title" 
    --post_content=- 
    --post_status=publish 
    --post_tags="$tags" 
    --allow-root
done < articles.csv

5.3 与 CMS/Notion/备忘录联动

结合其他工具的数据源,实现跨平台的内容同步:

  • 从 Notion 页面提取正文 → wp-cli 发布
  • 从 Obsidian 笔记库批量导出 → 逐个发布到博客
  • 从 GitHub Gist 拉取代码片段 → 嵌入文章中发布

六、常见问题

Q: wp-cli 提示 “Error: YIKES! It looks like you’re running this as root.”怎么办?
A: 加上 --allow-root 参数即可。生产环境建议切换到专用用户运行。

Q: 如何上传图片附件?
A: 使用 wp media import your-image.jpg --post_id=123 --allow-root,或者在文章内容中使用 <img> 标签配合媒体库 URL。

Q: 如何在发布后自动更新旧文章?
A: 先用 wp post list --name=<slug> 查找文章 ID,然后用 wp post update <id> --post_content=@new-content.md --allow-root 覆盖更新。

Q: REST API 认证失败?
A: 如果是自托管服务器,使用 Application Passwords(WordPress 4.6+ 内置)。如果在容器化环境中,可能需要额外配置 JWT 认证插件。


结语

从手工敲键盘发帖到 AI 写作 + 自动化推送,这条路其实比你想象的近得多。不需要花哨的工具链,一套命令行工具就能打通全链路。

当你习惯了”说句话就把文章发出去”的体验,回去看那些还要先登录后台、切换编辑器、点击发布按钮的日子——真的像上个世纪的产物。

关键不是工具多高级,而是你有没有把重复劳动交给机器。

现在就试试,把你下一篇博客的第一行字告诉 Agent,看看会发生什么。


本文档由 Hermes Agent 辅助编写并通过 wp-cli 自动发布。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容