要使用 WordPress REST API 实现自动发布文章,需通过 HTTP 请求与 WordPress 站点交互。以下是详细步骤和示例代码:
—
### **1. 准备工作**
#### **1.1 安装必要插件(可选)**
– **JWT 认证插件**(推荐):
安装 [JWT Authentication for WP REST API](https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/) 插件,启用 JSON Web Token 认证,更安全。
– **基本认证**(简单但不推荐):
直接使用用户名和密码通过 `Basic Auth` 认证(需在 WordPress 中启用 `rest_authentication_scheme`)。
#### **1.2 获取 API 端点**
– 文章创建端点:`https://your-wordpress-site.com/wp-json/wp/v2/posts`
—
### **2. 获取认证凭据**
#### **2.1 使用 JWT 认证**
1. 获取 Token:
“`bash
curl -X POST https://your-wordpress-site.com/wp-json/jwt-auth/v1/token \
-u username:password
“`
响应会返回 `token`,用于后续请求。
2. 请求头中携带 Token:
“`http
Authorization: Bearer
“`
#### **2.2 使用 Basic Auth**
– 请求头中添加:
“`http
Authorization: Basic
“`
(例如:`username:password` 编码为 `dXNlcm5hbWU6cGFzc3dvcmQ=`)
—
### **3. 构造请求体**
需包含文章的标题、内容、状态(`publish` 或 `draft`)等字段。示例数据:
“`json
{
“title”: “自动发布测试文章”,
“content”: “这是通过 WordPress REST API 自动发布的文章内容。”,
“status”: “publish”,
“categories”: [1], // 分类ID
“tags”: [2], // 标签ID
“date_gmt”: “2023-10-05T12:00:00” // GMT 时间(ISO 8601 格式)
}
“`
—
### **4. 发送 POST 请求**
#### **4.1 使用 Python 示例**
“`python
import requests
import json
url = “https://your-wordpress-site.com/wp-json/wp/v2/posts”
headers = {
“Authorization”: “Bearer YOUR_JWT_TOKEN”, # 或 “Basic base64-encoded-credentials”
“Content-Type”: “application/json”
}
data = {
“title”: “自动发布测试文章”,
“content”: “这是通过 WordPress REST API 自动发布的文章内容。”,
“status”: “publish”,
“categories”: [1],
“tags”: [2],
“date_gmt”: “2023-10-05T12:00:00”
}
response = requests.post(url, headers=headers, data=json.dumps(data))
print(response.status_code)
print(response.json())
“`
#### **4.2 使用 curl 命令**
“`bash
curl -X POST https://your-wordpress-site.com/wp-json/wp/v2/posts \
-H “Authorization: Bearer YOUR_JWT_TOKEN” \
-H “Content-Type: application/json” \
-d ‘{
“title”: “自动发布测试文章”,
“content”: “这是通过 WordPress REST API 自动发布的文章内容。”,
“status”: “publish”,
“categories”: [1],
“tags”: [2],
“date_gmt”: “2023-10-05T12:00:00”
}’
“`
—
### **5. 验证结果**
– **成功响应**:返回文章的 ID 和自动生成的 URL(如 `https://your-site.com/post-slug/`)。
– **错误处理**:检查响应码(如 401 认证失败,400 参数错误)。
—
### **6. 注意事项**
1. **安全性**:
– 不要在代码中硬编码凭证,使用环境变量或配置文件。
– 生产环境推荐使用 JWT 或 OAuth。
2. **权限**:
– 确保使用的用户角色有权限创建文章(如 `editor` 或 `administrator`)。
3. **字段格式**:
– `date_gmt` 必须为 ISO 8601 格式。
– `categories` 和 `tags` 需传入现有 ID。
—
### **7. 扩展功能**
– **定时发布**:结合操作系统的定时任务(如 `cron`)或编程语言的定时器。
– **批量发布**:通过循环发送多个请求,或使用 `wp_rest_request` 插件批量处理。
—
通过以上步骤,你可以实现自动化发布文章到 WordPress 站点。根据需求选择认证方式,并确保数据格式正确即可。