WordPressにPythonで自動投稿する方法

ブログ

WordPressに自動で記事を投稿したいと考えている方に向けて、Pythonを使ってWordPressに投稿する方法を解説します。以下のコードを使えば、Pythonから簡単に投稿を作成することができます。

必要なライブラリの準備

まず、WordPressに投稿するためには、python-wordpress-xmlrpcというライブラリを使います。このライブラリをインストールするためには、以下のコマンドを実行します。

pip install python-wordpress-xmlrpc

投稿用のPythonコード

以下のコードは、Pythonを使ってWordPressに自動で投稿するためのものです。post_to_wp関数を使って、投稿のタイトル、本文、カテゴリ、タグなどを指定して投稿を作成できます。

from wordpress_xmlrpc import Client, WordPressPost
from wordpress_xmlrpc.methods.posts import NewPost
import datetime

def post_to_wp(wp, title, body, categories=[], tags=[], status="draft", eye_catch_img_id=None):
    # 新しい投稿を作成
    post = WordPressPost()
    post.title = title
    post.content = body
    post.post_status = status
    post.terms_names = {
        "category": categories,
        "post_tag": tags,
    }

    # アイキャッチ画像の設定
    if eye_catch_img_id:
        post.thumbnail = eye_catch_img_id

    # 投稿日時の設定(例としてJSTで設定)
    post.date = datetime.datetime.now() - datetime.timedelta(hours=9)

    # 投稿をWordPressに送信
    post_id = wp.call(NewPost(post))
    return post_id

コードの説明

  1. ライブラリのインポート
    ClientWordPressPostクラスをインポートします。ClientはWordPressサーバーとの接続に使い、WordPressPostは投稿を作成するために使用します。
    Clientの引数は、ご自身のサイトのドメイン、ユーザー名、パスワードに書き換えてください。

  2. 投稿の作成
    WordPressPostのインスタンスを作成し、タイトル、本文、投稿ステータスを設定します。terms_namesでカテゴリやタグを指定できます。

  3. アイキャッチ画像の設定
    eye_catch_img_idが指定されている場合、その画像をアイキャッチ画像として設定します。

  4. 投稿日時の設定
    – 投稿の日時をJST(日本標準時)で設定します。必要に応じてタイムゾーンを調整してください。

  5. 投稿の送信
    NewPostメソッドを使って、WordPressサーバーに投稿を送信し、投稿IDを返します。

実行方法

この関数を使用するには、まずWordPressサーバーに接続するためのClientインスタンスを作成します。その後、post_to_wp関数を呼び出して投稿を作成します。以下はその一例です。ユーザー名やパスワードはWordPressのダッシュボードにログインするときのものがそのまま使用できます。

wp = Client('http://your-wordpress-site.com/xmlrpc.php', 'username', 'password')
post_id = post_to_wp(wp, 'タイトル', '投稿内容', categories=['カテゴリー'], tags=['タグ'], status='publish')
print(f'投稿ID: {post_id}')

まとめ

Pythonを使ってWordPressに自動で投稿する方法は、非常に便利です。この記事で紹介したコードを活用して、ブログの自動化や投稿の管理を効率化してみてください

タイトルとURLをコピーしました