pythonからWordPressに投稿&画像のアップロード

2018.05.08 2019.10.26 78
pythonからWordPressに投稿&画像のアップロード

環境

  • python3

準備

pipでインストール

pip install python-wordpress-xmlrpc

ソース


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 media 

wpSiteXMLRPC = 'https://サイト名/xmlrpc.php' 
loginId = '***' 
password = '***' 

post = WordPressPost() 

# タイトル 
post.title = title 

# 投稿内容 
post.content = body 

# タグ、カテゴリ 
post.terms_names = { 'post_tag': ***, 'category': *** } 

# 投稿URL(スラッグ) 
post.slug = *** 

#画像のアップロード with open(imgPath, 'rb') as f: 
binary = f.read() data = { "name": imgPath.replace("tmp/",""), "type": 'image/jpeg', "overwrite": True, "bits": binary } 

media_id = wp.call(media.UploadFile(data))['id'] 

# 画像アイキャッチの指定 
post.thumbnail = media_id #投稿時間 

#※よくわからんが、タイムゾーンが違うらしい。-9時間するとちょうど今の時間になるらしい 
post.date = datetime.datetime.now() - datetime.timedelta(hours=9) 

#カスタムフィールド 
customFields = [] customFields.append({ 'key': 'aaa', 'value': '***' }) 
customFields.append({ 'key': 'bbb', 'value': '***' }) 
post.custom_fields = customFields 

# 投稿する 
# 公開済にする。 
post.post_status = 'publish' 

# 下書き指定の場合 
# post.post_status = 'draft' wp.call(NewPost(post))

 


以上です。