Pythonでwordpressに自動で投稿する(python-wordpress-xmlrpc)

古いHPを新しく作成したワードプレスに移行することになったとき、過去のデータをまとめてPythonで投稿したときのコードを示す。
動作環境はWindows10 64bitでPython3.6.5(Anaconda3.5.1-0)。
これに”pip install python-wordpress-xmlrpc”で2.3のバージョンを入れた。
(conda install ***だとファイルが見つからなかったので、 Anaconda環境であったがpipで入れてしまった)

# -*- coding: utf-8 -*-
import time
from datetime import datetime
from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.users import GetUserInfo
from wordpress_xmlrpc.methods.posts import GetPosts, NewPost


def main():
    """
    変数を定義
    """
    id="******"
    password="******"
    #idとpasswordはwordpressの管理画面に入るためのもの

    url="https:***/xmlrpc.php"
    #第3者が閲覧するURLの後ろに/xmlrpc.phpをつける。
    #ワードプレスの管理画面の後ろにつけるとエラーになった

    which="publish"
    #which="draft"
    #下書きに投稿するか本番で投稿するか選択


    """
    クライアントの呼び出しなど
    """
    wp = Client(url, id,password)
    post = WordPressPost()


    """
    実際に投稿する
    """
    post.post_status = which
    post.title = "タイトルをここに書く"
    post.content = "本文をここに書く"
    post.terms_names = {
        "post_tag": ['希望するtag1', '希望するtag2'],
        "category": ['希望するカテゴリー1', '希望するカテゴリー2'],
        }
    #過去に投稿した記事としたい場合、投稿日をここで指定。例として2018年1月1日10時5分10秒に投稿した例を示す。
    post.date=datetime.strptime("2018/1/01 10:05:10","%Y/%m/%d %H:%M:%S")
    wp.call(NewPost(post))


if __name__=="__main__":
    main()

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です