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 = 'http://サイト名/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))
以上です。