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
コードの説明
-
ライブラリのインポート
–Client
とWordPressPost
クラスをインポートします。Client
はWordPressサーバーとの接続に使い、WordPressPost
は投稿を作成するために使用します。
–Client
の引数は、ご自身のサイトのドメイン、ユーザー名、パスワードに書き換えてください。 -
投稿の作成
–WordPressPost
のインスタンスを作成し、タイトル、本文、投稿ステータスを設定します。terms_names
でカテゴリやタグを指定できます。 -
アイキャッチ画像の設定
–eye_catch_img_id
が指定されている場合、その画像をアイキャッチ画像として設定します。 -
投稿日時の設定
– 投稿の日時をJST(日本標準時)で設定します。必要に応じてタイムゾーンを調整してください。 -
投稿の送信
–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に自動で投稿する方法は、非常に便利です。この記事で紹介したコードを活用して、ブログの自動化や投稿の管理を効率化してみてください