https://www.jianshu.com/p/51e85396cb40
上次教程我们已经讲到了用python发布单篇WordPress文章,但是只是单篇文章的发布,多篇文章发布的话就需要将函数封装一下,用文件读写的方式来获取文章并发布,本文将给大家继续介绍wordpress-xmlrpc里的一些方法,并在最后将这些方法组合起来,进行封装,实现批量发布多篇文章到WordPress后台。
今天先给大家介绍wordpress-xmlrpc里Methods类的taxonomies()方法。taxonomies方法主要用于获取文章分类,当然,这个分类不是指文章的栏目分类,具体是什么分类呢?我们使用taxonomies方法的GetTaxonomies()属性来获取一下所以分类试试,看获取到的分类是什么内容:
for tax in client.call(taxonomies.GetTaxonomies()):
print(tax)
发现跟我们之前写的文章发布分类字典内的键是一致的:
所以GetTaxonomies()获取到的分类是指写文章发布代码时用到的分类变量名。
taxonomies方法还有一个比较重要的属性是GetTerms(),这个属性可以获取到某个分类下所有的值,这里的分类就是我们刚才用GetTaxonomies()获取到的“category、post_tag、post_format”三个分类。怎么应用呢?比如我们想知道网站总共有哪些标签,就可以使用GetTerms(‘post_tag’)来获取:
#for taxx in client.call(taxonomies.GetTerms(‘post_tag’)):
for tax in client.call(taxonomies.GetTerms(‘post_tag’)):
print(tax.name)
NewTerms()属性:创建一个新的分类目录:# 创建新的分类目录
wpt = WordPressTerm()# 实例化
wpt.name = ‘小说’# 赋值
wpt.slug = ‘novel’ # 别名
wpt.taxonomy = ‘category’# 指定新建到哪个分类
client.call(taxonomies.NewTerm(wpt))# 返回新创建的分类栏目id
封装函数
还是先将之前采集的短文学网的散文txt文件拷贝到python代码文件夹内,如果没有的同学可以先查看《【文章采集】SEOer必学:文章采集案例之短文学网散文采集(二)》这篇文章,学习下如何采集。
post()函数封装:
def post(client,title,content,category):
”’
发布函数
:param client: 链接WordPress客户端
:param title: 标题
:param content: 内容
:param category: 分类,多个分类可以传入一个列表
:return: 发布成功返回文章链接,失败False
”’
newpost = WordPressPost()
newpost.title = title# 标题
newpost.content = content# 正文
newpost.terms_names = {
‘category’:[category]
}# 栏目
newpost.post_status = ‘publish’# 发布状态
try:
pid = client.call(posts.NewPost(newpost))
purl = ‘http://127.0.0.1/wordpress/?p=%s’ % pid# 发布的文章url
except:
return False
else:
return purl
if__name__== ‘__main__’: 主体执行代码:
content_list = [p.strip()forpinopen(‘duanwenxue.txt’)]
try:
### client = Client(‘http://dsfsfsdf.com/xmlrpc.php’, ‘xxx’, ‘xxxxx’) # Client类:返回wordpress_xmlrpc.base.Client对象
client = Client(‘http://127.0.0.1/wordpress/xmlrpc.php’, ‘admin’, ‘123456’)
except:
print(‘登录失败’)
else:
print(‘登录成功’)
for article in content_list[:10]:# 前十篇
title,content = article.split(‘####’) # 提取出文章标题和正文
print(post(client,title,content,’散文’))# 传入post()函数
作者:朝畫夕拾
链接:https://www.jianshu.com/p/51e85396cb40
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。