Python

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))

以上です。

ABOUT ME
こふそ
東京でIT会社員しています。 将来の夢は誰かを幸せにすることです。仮想通貨投資に興味があります。 いろんなことを学べればいいなと思っています。