WordPress REST API为开发者提供了一种强大的方式来与WordPress网站进行交互,无需直接访问后台管理界面即可完成各种操作。本文将详细介绍如何利用WordPress REST API来发布文章。
准备工作
在使用WordPress REST API发布文章前,需要确保:
- 你的WordPress网站版本在4.7或以上
- 已启用REST API功能(默认已启用)
- 准备好认证凭据(用户名密码或应用程序密码)
基本发布请求
以下是使用WordPress REST API发布文章的基本HTTP请求示例:
POST /wp-json/wp/v2/posts
Authorization: Basic BASE64编码的用户名密码
Content-Type: application/json
{
"title": "我的第一篇API文章",
"content": "这是通过WordPress REST API发布的内容",
"status": "publish"
}
认证方式
WordPress REST API支持多种认证方式:
- 基本认证:简单但不安全,适合开发环境
- OAuth认证:更安全的生产环境方案
- 应用程序密码:WordPress 5.6+引入的特性
文章参数详解
发布文章时可以设置多种参数:
title
:文章标题(必填)content
:文章内容(HTML格式)excerpt
:文章摘要status
:文章状态(publish/draft等)categories
:分类ID数组tags
:标签ID数组featured_media
:特色图片IDcomment_status
:评论状态(open/closed)
实际代码示例(Python)
import requests
import base64
url = "https://yourwebsite.com/wp-json/wp/v2/posts"
username = "your_username"
password = "your_application_password"
credentials = f"{username}:{password}"
token = base64.b64encode(credentials.encode()).decode()
headers = {
"Authorization": f"Basic {token}",
"Content-Type": "application/json"
}
data = {
"title": "Python发布的文章",
"content": "这是通过Python脚本发布的内容",
"status": "publish",
"categories": [1, 3],
"tags": [5, 7]
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
错误处理
在实际应用中,应该添加错误处理逻辑:
try:
response = requests.post(url, headers=headers, json=data)
response.raise_for_status() # 检查HTTP错误
print("文章发布成功!")
print(response.json())
except requests.exceptions.HTTPError as err:
print(f"HTTP错误: {err}")
except Exception as err:
print(f"其他错误: {err}")
高级功能
- 定时发布:通过设置
date
参数 - 自定义字段:使用
meta
参数 - 多站点支持:在WordPress多站点环境中使用
- 批量操作:一次请求处理多篇文章
安全注意事项
- 永远不要在客户端代码中硬编码凭据
- 生产环境应使用HTTPS
- 考虑实现速率限制
- 定期轮换API凭据
通过掌握WordPress REST API发布文章的方法,开发者可以构建各种自动化内容发布系统,实现与其他应用程序的无缝集成。