一、安装依赖
这是 python-wordpress-xmlrpc 的项目地址:https://python-wordpress-xmlrpc.readthedocs.io/en/latest/overview.html
Python 调用 WordPress xmlrpc 需要的模块是 python_wordpress_xmlrpc,直接通过 pip 安装即可(这里用的是 python3):
pip3 install python_wordpress_xmlrpc
之后结合 Python 代码可以实现 WordPress 自动发布文章的功能。
二、源码分享
1、发布文章
其中 post_status 可以是草稿、发布和私密,Client 类需要传入你的 xmlrpc.php 地址,以及用户名和密码,可以指定文章的分类目录和标签,但是如果分类目录和标签不存在是会报错的,可以新新建。最后成功发布后会返回文章的 id:
from wordpress_xmlrpc import Client, WordPressPostfrom wordpress_xmlrpc.methods import postswp = Client(‘https://domain.com/xmlrpc.php’, ‘username’, ‘password’)def post_new_article(title, content):post = WordPressPost()post.title = titlepost.content = contentpost.post_status = ‘draft’ # 文章状态,不写默认是草稿,private表示私密的,draft表示草稿,publish表示发布post.terms_names = {‘category’: [‘分类目录’],‘post_tag’: [‘标签1’, ‘标签2’],}post.id = wp.call(posts.NewPost(post))return post.id
2、新建标签和分类目录
代码如下,跟发布文章类似,也是新建 Client,调用 call 方法:
#coding:utf-8from wordpress_xmlrpc import Client, WordPressPostfrom wordpress_xmlrpc import WordPressTermfrom wordpress_xmlrpc.methods import taxonomiesimport sysreload(sys)sys.setdefaultencoding(‘utf-8’)wp = Client(‘http://您的域名/xmlrpc.php’, ‘后台账号’, ‘后台密码’)#新建标签tag = WordPressTerm()tag.taxonomy = ‘post_tag’tag.name = ‘My New Tag12’#标签名称tag.slug = ‘bieming12’#标签别名,可以忽略tag.id = wp.call(taxonomies.NewTerm(tag))#返回的id#新建分类cat = WordPressTerm()cat.taxonomy = ‘category’cat.name = ‘cat1’#分类名称cat.slug = ‘bieming2’#分类别名,可以忽略cat.id = wp.call(taxonomies.NewTerm(cat))#新建分类返回的id#新建子分类parent_cat = client.call(taxonomies.GetTerm(‘category’, 20))#20是父分类的idchild_cat = WordPressTerm()child_cat.taxonomy = ‘category’child_cat.parent = parent_cat.idchild_cat.name = ‘My Child Category’#分类名称child_cat.slug = ‘beidongdui’#分类别名,可以忽略child_cat.id = wp.call(taxonomies.NewTerm(child_cat))#新建分类返回的id