python csv wordpress xmlrpc_python使用xmlrpc自动发布文章到wordpress

背景:需要大批量往已部署好的wordpress的网站迁移文章,经过一番查询发现,wordpress是支持xmlrpc,且国外有一位网页开发好这个模块——python的 wordpress_xmlrpc模块。

安装:easy_install python-wordpress-xmlrpc

pip install python-wordpress-xmlrpc

上传图片样例:#coding:utf-8

from wordpress_xmlrpc import Client, WordPressPost

from wordpress_xmlrpc.methods import media

import filetype

wp = Client('http://您的域名/xmlrpc.php', '后台账号', '后台密码')

filename = './my.jpg' #上传的图片文件路径

data = {

'name': 'my.jpg', # 文件名

}

with open(filename, 'rb') as f:

img_content = xmlrpc_client.Binary(f.read())

# 获取文件的mimetype

kind = filetype.guess(img_content )

if not kind:

return

data['type'] = kind.mime

data['bits'] = img_content

response = wp.call(media.UploadFile(data))

#----------response常用的数据---------------------

{

'url': 'http://aureua.com/wp-content/uploads/2019/02/iwr1mnQpngM-1.jpg',

'type': 'image/jpeg',

'link': 'http://aureua.com/wp-content/uploads/2019/02/iwr1mnQpngM-1.jpg',

'description': '',

'parent': 0,

'title': 'iwr1mnQpngM.jpg',

'thumbnail': 'http://aureua.com/wp-content/uploads/2019/02/iwr1mnQpngM-1-150x150.jpg',

'file': 'iwr1mnQpngM.jpg',

'attachment_id': '823',

'id': '823'

文章发布样例:#coding:utf-8

from wordpress_xmlrpc import Client, WordPressPost

from wordpress_xmlrpc.methods.posts import NewPost

from wordpress_xmlrpc.compat import xmlrpc_client

from wordpress_xmlrpc.methods import media, posts

from datetime import datetime

wp = Client('http://您的域名/xmlrpc.php', '后台账号', '后台密码')

post = WordPressPost()

post.title = '文章标题'

post.content = '文章内容'

post.post_status = 'publish' #文章状态,不写默认是草稿,private表示私密的,draft表示草稿,publish表示发布

post.terms_names = {

'post_tag': ['python', 'xmlrpc'], #文章所属标签,没有则自动创建

'category': ['python', 'xmlrpc'] #文章所属分类,没有则自动创建

}

post.custom_fields = [] #自定义字段列表

post.custom_fields.append({ #添加一个自定义字段

'key': 'price',

'value': 5

})

post.custom_fields.append({ #添加第二个自定义字段

'key': 'address',

'value': '天涯海角'

})

post.date = datetime.strptime('2019-02-26', '%Y-%m-%d') # 发布时间

post.thumbnail = 11 #缩略图的id

post.id = wp.call(posts.NewPost(post))

文章分类和标签的创建#coding:utf-8

from wordpress_xmlrpc import Client, WordPressPost

from wordpress_xmlrpc import WordPressTerm

from wordpress_xmlrpc.methods import taxonomies

wp = Client('http://您的域名/xmlrpc.php', '后台账号', '后台密码')

#新建标签

tag = WordPressTerm()

tag.taxonomy = 'post_tag'

tag.name = '标签名称'

tag.slug = '标签别名,可以忽略'

tag.id = wp.call(taxonomies.NewTerm(tag)) #返回的id

#新建分类

cat = WordPressTerm()

cat.taxonomy = 'category'

cat.name = '分类名称'

cat.slug = '分类别名,可以忽略'

cat.id = wp.call(taxonomies.NewTerm(cat)) #新建分类返回的id

#新建子分类

parent_cat = client.call(taxonomies.GetTerm('category', 20))#20是父分类的id

child_cat = WordPressTerm()

child_cat.taxonomy = 'category'

child_cat.parent = parent_cat.id

child_cat.name = '分类名称'#

child_cat.slug = '分类别名,可以忽略'#

child_cat.id = wp.call(taxonomies.NewTerm(child_cat))#新建分类返回的id

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值