登录  /  注册
博主信息
博文 34
粉丝 1
评论 0
访问量 55241
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
wordpress自动发送文章
Y的博客
原创
2412人浏览过

安装

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 += '<img src="{}" class="alignnone size-medium wp-image-{}"/>'.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 '<img src="{}" class="alignnone size-medium wp-image-{}"/>'.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)

运行实例 »

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


本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学