WordPress登录API接口Python实现指南

来自:安企建站服务研究院

头像 方知笔记
2025年12月26日 07:42

WordPress作为全球最流行的内容管理系统(CMS)之一,提供了丰富的API接口供开发者使用。本文将介绍如何使用Python通过WordPress的REST API实现登录功能,并获取访问令牌进行后续操作。

准备工作

在开始之前,请确保:

  1. 已安装Python 3.x环境
  2. 安装了requests库(可通过pip install requests安装)
  3. WordPress网站已启用REST API功能(默认已启用)
  4. 确保WordPress网站启用了应用密码功能(用于API认证)

WordPress应用密码设置

  1. 登录WordPress后台
  2. 进入”用户”→”个人资料”
  3. 在底部”应用密码”部分,创建新的应用密码
  4. 记录下生成的应用密码(只会显示一次)

使用Python实现登录

以下是使用Python通过WordPress REST API进行认证的基本代码:

import requests
from requests.auth import HTTPBasicAuth

# WordPress网站配置
WORDPRESS_URL = "https://your-wordpress-site.com"
USERNAME = "your_username"
APPLICATION_PASSWORD = "your_application_password"

# 认证测试
def test_authentication():
endpoint = f"{WORDPRESS_URL}/wp-json/wp/v2/users/me"

try:
response = requests.get(
endpoint,
auth=HTTPBasicAuth(USERNAME, APPLICATION_PASSWORD)

if response.status_code == 200:
print("认证成功!")
print("用户信息:", response.json())
else:
print(f"认证失败,状态码: {response.status_code}")
print("响应正文:", response.text)

except Exception as e:
print(f"发生错误: {str(e)}")

if __name__ == "__main__":
test_authentication()

获取JWT令牌(可选)

如果你的WordPress安装了JWT插件(如JWT Authentication for WP REST API),可以使用以下方式获取JWT令牌:

def get_jwt_token():
endpoint = f"{WORDPRESS_URL}/wp-json/jwt-auth/v1/token"

data = {
"username": USERNAME,
"password": APPLICATION_PASSWORD
}

try:
response = requests.post(endpoint, data=data)

if response.status_code == 200:
token = response.json().get("token")
print("JWT令牌获取成功:", token)
return token
else:
print(f"获取JWT令牌失败,状态码: {response.status_code}")
print("响应内容:", response.text)

except Exception as e:
print(f"发生错误: {str(e)}")

使用令牌进行API调用

获取令牌后,可以将其用于后续的API调用:

def get_posts_with_token(token):
endpoint = f"{WORDPRESS_URL}/wp-json/wp/v2/posts"

headers = {
"Authorization": f"Bearer {token}"
}

try:
response = requests.get(endpoint, headers=headers)

if response.status_code == 200:
print("文章获取成功!")
print("文章列表:", response.json())
else:
print(f"获取文章失败,状态码: {response.status_code}")
print("响应内容:", response.text)

except Exception as e:
print(f"发生错误: {str(e)}")

安全注意事项

  1. 永远不要将应用密码或令牌硬编码在代码中
  2. 使用环境变量或配置文件存储敏感信息
  3. 考虑实现令牌刷新机制
  4. 限制API密钥的权限范围
  5. 使用HTTPS确保通信安全

总结

通过Python与WordPress REST API交互,可以实现自动化登录、内容管理和站点维护等功能。本文介绍了基本的认证方法和API调用方式,你可以根据实际需求扩展这些代码,实现更复杂的WordPress自动化操作。

对于更高级的用例,建议参考WordPress官方REST API文档,了解所有可用的端点和参数。