使用Python通过XML-RPC与WordPress交互的完整指南

来自:素雅营销研究院

头像 方知笔记
2025年06月03日 22:18

XML-RPC是一种远程过程调用协议,允许不同系统间通过网络进行通信。WordPress内置了XML-RPC接口,使开发者能够使用Python等编程语言远程管理WordPress内容。本文将详细介绍如何使用Python通过XML-RPC与WordPress进行交互。

准备工作

在开始之前,请确保:

  1. 你的WordPress网站已启用XML-RPC功能(默认启用)
  2. 安装Python的python-wordpress-xmlrpc
pip install python-wordpress-xmlrpc

基本连接设置

首先需要建立与WordPress的连接:

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import GetPosts, NewPost
from wordpress_xmlrpc.methods.users import GetUserInfo

# 连接WordPress
wp_url = "https://yourwebsite.com/xmlrpc.php"
wp_username = "your_username"
wp_password = "your_password"

client = Client(wp_url, wp_username, wp_password)

常用操作示例

1. 获取用户信息

user_info = client.call(GetUserInfo())
print(f"用户名: {user_info.username}")
print(f"邮箱: {user_info.email}")

2. 创建新文章

post = WordPressPost()
post.title = "我的第一篇Python发布文章"
post.content = "这是通过Python XML-RPC发布的内容"
post.post_status = 'publish'  # 可以是'draft'、'private'等

post_id = client.call(NewPost(post))
print(f"文章已创建,ID: {post_id}")

3. 获取文章列表

posts = client.call(GetPosts())
for p in posts:
print(f"ID: {p.id}, 标题: {p.title}, 日期: {p.date}")

高级功能

上传媒体文件

from wordpress_xmlrpc.methods.media import UploadFile
from wordpress_xmlrpc.compat import xmlrpc_client

with open('image.jpg', 'rb') as img:
data = {
'name': 'test_image.jpg',
'type': 'image/jpeg',  # MIME类型
'bits': xmlrpc_client.Binary(img.read()),
'overwrite': False
}

response = client.call(UploadFile(data))
print(f"文件已上传,URL: {response['url']}")

管理分类目录

from wordpress_xmlrpc.methods import taxonomies
from wordpress_xmlrpc.methods.taxonomies import GetTerms, NewTerm

# 获取所有分类
categories = client.call(GetTerms('category'))
for cat in categories:
print(cat.name)

# 创建新分类
new_category = {
'taxonomy': 'category',
'name': 'Python相关'
}
category_id = client.call(NewTerm(new_category))

安全注意事项

  1. 使用HTTPS连接保护凭证
  2. 为XML-RPC创建专用账户并限制权限
  3. 考虑使用应用密码而非管理员密码
  4. 定期监控XML-RPC访问日志

常见问题解决

  1. 连接被拒绝:检查WordPress的XML-RPC是否启用(设置→撰写→远程发布)
  2. 认证失败:确认用户名密码正确,特别是使用了特殊字符时
  3. 权限不足:确保用户有执行操作的足够权限

通过Python和WordPress XML-RPC的结合,你可以实现自动化内容管理、批量操作和与其他系统的集成,大大提高工作效率。