【自动发文】python实现WordPress文章发布(三):批量发布文章

上次教程我们已经讲到了用python发布单篇WordPress文章,但是只是单篇文章的发布,多篇文章发布的话就需要将函数封装一下,用文件读写的方式来获取文章并发布,本文将给大家继续介绍wordpress-xmlrpc里的一些方法,并在最后将这些方法组合起来,进行封装,实现批量发布多篇文章到WordPress后台。

今天先给大家介绍wordpress-xmlrpc里Methods类的taxonomies()方法。taxonomies方法主要用于获取文章分类,当然,这个分类不是指文章的栏目分类,具体是什么分类呢?我们使用taxonomies方法的GetTaxonomies()属性来获取一下所以分类试试,看获取到的分类是什么内容:

for   tax   in   client.call(taxonomies.GetTaxonomies()):

        print(tax)

【自动发文】python实现WordPress文章发布(三):批量发布文章_第1张图片

发现跟我们之前写的文章发布分类字典内的键是一致的:

【自动发文】python实现WordPress文章发布(三):批量发布文章_第2张图片

所以GetTaxonomies()获取到的分类是指写文章发布代码时用到的分类变量名。

【自动发文】python实现WordPress文章发布(三):批量发布文章_第3张图片

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)

【自动发文】python实现WordPress文章发布(三):批量发布文章_第4张图片
结果


NewTerms()属性:创建一个新的分类目录:

# 创建新的分类目录

wpt = WordPressTerm()# 实例化

wpt.name = '小说'# 赋值

wpt.slug = 'novel' # 别名

wpt.taxonomy = 'category'# 指定新建到哪个分类

client.call(taxonomies.NewTerm(wpt))# 返回新创建的分类栏目id

【自动发文】python实现WordPress文章发布(三):批量发布文章_第5张图片
已经新建成功!

封装函数

还是先将之前采集的短文学网的散文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()函数

【自动发文】python实现WordPress文章发布(三):批量发布文章_第6张图片
【自动发文】python实现WordPress文章发布(三):批量发布文章_第7张图片
可以看到已经发布成功了

你可能感兴趣的:(【自动发文】python实现WordPress文章发布(三):批量发布文章)