Python 调用 WordPress XML-RPC 获取及创建文章

python-with-wordpress-xmlrpc-api

前一篇文章中我们介绍了如何使用 Python 通过 WordPress REST API 实现获取和创建文章等功能的方法,本篇文章采用另一个 WordPress 的机制,即 XML-RPC API 来实现同样的功能。

WordPress 内置提供了对 XML-RPC 的支持,提供了开放编程接口(API)供客户端调用,目前实现比较好的 Python 客户端是 python-wordpress-xmlrpc,本篇文章也使用这个客户端,安装方法很简单,命令如下:

$pip3 install python-wordpress-xmlrpc

Word Press 服务器端 Endpoint 的调用路径如下:

http | https://domain | ip/wordpress/xmlrpc.php

使用了和 REST API 同样的用户鉴权方法,详细内容请参看上一篇文章的说明。获取和创建文章的 Python 代码如下:

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

user = 'admin'
password = 'PRug 5QLz wKmU LFiH XFwB m1wS'
url = 'http://127.0.0.1/xmlrpc.php'
c = Client(url, user, password)
#获取文章列表,返回的结果是WordPressPost对象数组
posts = c.call(GetPosts())
for post in posts:
    print(post.title)
    print(post.content)

#创建新文章
post = WordPressPost()
post.title = 'Python call xmlrpc service'
post.content = 'This post is created by python xmlrpc for wordpress.'
post.post_status = 'publish'
#如果标签和目录不存在,会自动创建
post.terms_names = {'post_tag': ['python', 'xmlrpc'],'category': ['Develop']}
post_id = c.call(NewPost(post))
print(post_id)

其它的功能如编辑、删除文章,编辑用户信息,新建、编辑、删除评论,管理分类,上传文件等,实现方法是类似的,详细的 API 说明请参看官网的指南。

发表评论

邮箱地址不会被公开。 必填项已用*标注