博主信息
涵宇丶的博客
博文
31
粉絲
1
評論
0
訪問量
13117
積分:0
P豆:105

wordpress自動發送文章

2020年01月21日 14:47:57閱讀數:824博客 / 涵宇丶的博客 / python

安裝

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)

運行實例 ?

點擊 "運行實例" 按鈕查看在線實例


全部評論

文明上網理性發言,請遵守新聞評論服務協議

條評論
暫無評論暫無評論!
  • 3d试机号绕胆图