WordPress REST API 自动发布文章教程

背景

通过 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 自动发布:

  1. 生成应用程序密码
  2. 确认用户名和 HTTPS 地址
  3. 一行 curl 或一段 Python 即可发布

全程不需要登录后台,适合批量发文、定时发布、AI 生成内容自动上线等场景。

发表评论