wordpress python 自动发布_wordpress自动发送文章

安装

pip install python-wordpress-xmlrpc

实例

# Author: 执笔画卿颜丶

# wordpress库

from wordpress_xmlrpc import Client, WordPressPost

from wordpress_xmlrpc.methods.posts import GetPosts, NewPost

from wordpress_xmlrpc.methods.users import GetUserInfo

from wordpress_xmlrpc.methods import posts

from wordpress_xmlrpc.methods import taxonomies

from wordpress_xmlrpc import WordPressTerm

from wordpress_xmlrpc.compat import xmlrpc_client

from wordpress_xmlrpc.methods import media, posts

# 其它库

import configparser, os

class yuChiSendWP():

def __init__(self):

# 初始化configparser

self.configparser = configparser.ConfigParser()

# 读取当前目录下的配置文件

self.configparser.read(os.getcwd() + '/config.ini', encoding='utf-8-sig')

# 初始化wp连接

self.wp = Client(self.configparser.get('配置', '域名') + 'xmlrpc.php', self.configparser.get('配置', '用户名'), self.configparser.get('配置', '密码'))

def send_wp_article(self, data):

# 实例WordPressPost类

post = WordPressPost()

# wp文章标题

post.title = data['title']

# 默认为文章状态为发布 文章状态,不写默认是草稿,private表示私密的,draft表示草稿,publish表示发布

post.post_status = 'publish'

# 文章标签与分类 格式为  data['term_names'] = {'post_tag': ['数组'], 'category': ['数组']} 如果存在不会创建,不存在则会创建

post.terms_names = data['term_names']

# 自定义字段 格式为  data['custom_fields'] = [{'key': '字段名称', 'value': '值'}] 如果存在不会创建,不存在则会创建,多个就在数组里添加多个字典

post.custom_fields = data['custom_fields']

# 是否需要上传图片

is_upload = self.configparser.get('配置', '是否需要上传图片')

# 判断用户是否需要上传图片

if is_upload == '是':

# wp内容拼接图片

data['content'] = data['content'] + self.upload_img_wp()

# 发送内容

post.content = data['content']

else:

# 发送内容

post.content = data['content']

# 发送文章

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

# 返回数据d

print('发送的文章名称为:【{}】, 数据id为【{}】'.format(data['title'], post.id))

def upload_img_wp(self):

# 读取配置文件config.ini图片参数

img_path = self.configparser.get('配置', '图片')

# 判断是否有多个图片

if img_path.find('|') != -1:

# 有就分隔|成数组

files = img_path.split('|')

# 图片内容

img_content = ''

# 遍历图片

for f in files:

print(f)

# 配置图片参数

post_data = {

'name': f,

'type': 'image/*',  # mimetype

}

# 打开图片上传

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

post_data['bits'] = xmlrpc_client.Binary(img.read())

# 上传返回

result = self.wp.call(media.UploadFile(post_data))

# 拼接图片地址

                    img_content += ''.format(

result['link'], result['id'])

return img_content

else:

# 配置图片参数

post_data = {

'name': img_path,

'type': 'image/*',  # mimetype

}

# 打开图片上传

with open(img_path, 'rb') as img:

post_data['bits'] = xmlrpc_client.Binary(img.read())

# 上传返回

result = self.wp.call(media.UploadFile(post_data))

# 拼接图片地址

                return ''.format(

result['link'], result['id'])

wp = yuChiSendWP()

data = {

'title': '测试内容1',

'content': '文章内容1[rihide]很不错的资源11[/rihide]',

'term_names': {

'post_tag': ['测试'],

'category': ['分类'],

},

'custom_fields': [

{'key': 'cao_price', 'value': '10'},

{'key': 'cao_vip_rate', 'value': 0},

{'key': 'post_style', 'value': 'sidebar'},

]

}

if __name__ == '__main__':

wp.send_wp_article(data)

运行实例 »

点击 "运行实例" 按钮查看在线实例

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值