背景
通过 WordPress 应用程序密码(Application Password)配合 REST API,可以实现完全自动化的文章发布,无需每次登录后台。
准备工作
1. 生成应用程序密码
登录 WordPress 后台 → 用户 → 个人资料 → 应用程序密码 → 添加新的应用程序密码。
生成后你会得到一串密码,格式如:X1Q1 znOZ 8kiz 5SJd c9Pd nW6Q(空格仅用于展示,实际使用时去掉空格)。
注意:应用程序密码只能用于 REST API,不能用于网页登录后台或 XML-RPC。
2. 确认用户名
应用程序密码需要配合生成它的用户名使用。
自动发布文章
基础命令
curl -X POST "https://你的站点.com/wp-json/wp/v2/posts" \
-u "用户名:应用程序密码" \
-H "Content-Type: application/json" \
-d '{"title":"标题","content":"内容","status":"publish"}'
实操示例
curl -X POST "https://wp.org.cn/wp-json/wp/v2/posts" \
-u "admin:XCQqznOZ8kiz5SJdc9PdnW6Q" \
-H "Content-Type: application/json" \
-d '{"title":"我的文章","content":"这是内容。","status":"publish"}'
常见参数
| 参数 | 说明 | 可选值 |
|---|---|---|
status |
发布状态 | publish / draft / pending / private |
categories |
分类 ID | [1, 2] |
tags |
标签 ID | [3, 4] |
slug |
URL 别名 | 字符串 |
excerpt |
摘要 | {"raw":"摘要内容"} |
featured_media |
特色图片 ID | 数字(需先上传媒体) |
author |
作者 ID | 数字(默认当前用户) |
踩坑记录
坑 1:HTTP 还是 HTTPS?
如果你的站点开启了 HTTPS(大部分都开了),必须用 https://。用 http:// 会返回 rest_cannot_create 错误,即使认证通过了也发不了文章。
错误信息:{"code":"rest_cannot_create","message":"抱歉,您不能为此用户创建文章。"}
坑 2:应用密码 ≠ 登录密码
应用程序密码只能用于 REST API Basic Auth,不能用于网页登录(/wp-admin)和 XML-RPC。
坑 3:权限不足
如果返回 rest_cannot_create,检查:用户角色是否至少为「作者」,是否使用了正确的 HTTPS 地址,应用程序密码是否属于正确的用户。
Python 自动化脚本
import requests
WP_URL = "https://wp.org.cn"
WP_USER = "admin"
WP_APP_PASSWORD = "XCQqznOZ8kiz5SJdc9PdnW6Q"
def publish_post(title, content, status="publish", categories=None, tags=None):
url = f"{WP_URL}/wp-json/wp/v2/posts"
resp = requests.post(url, auth=(WP_USER, WP_APP_PASSWORD), json={
"title": title, "content": content, "status": status
})
if resp.status_code == 201:
post = resp.json()
print(f"发布成功!ID: {post['id']}, 链接: {post['link']}")
return post
else:
print(f"失败: {resp.json()}")
return None
publish_post("Hello World", "<p>这是自动发布的文章。</p>")
总结
三步搞定 WordPress 自动发布:
- 生成应用程序密码
- 确认用户名和 HTTPS 地址
- 一行 curl 或一段 Python 即可发布
全程不需要登录后台,适合批量发文、定时发布、AI 生成内容自动上线等场景。