Pythonでブログ記事を自動投稿する方法:WordPress連携の始め方

AI活用術

ブログ運営を続けていると、記事の投稿作業に多くの時間を取られてしまうことがあります。特に定期的に記事を公開する必要がある場合、手作業での投稿は非効率になりがちです。そこで役立つのが、WordPressが公式に提供している「WordPress REST API」を使った自動投稿の仕組みです。

WordPress REST APIを利用すると、Pythonから直接WordPressサイトに記事データを送信し、投稿・更新・下書き保存などの操作を行うことができます。本記事では、Pythonのrequestsライブラリを使ってWordPressと連携し、記事を自動投稿する方法の基本を解説します。

WordPress側の準備:REST APIとApplication Passwordsの設定

WordPress REST APIは、WordPress本体に標準で組み込まれている機能です。特別なプラグインを追加しなくても、通常のWordPressサイトであれば https://あなたのサイトURL/wp-json/wp/v2/posts のようなエンドポイントにアクセスできます。

記事の投稿にはユーザー認証が必要です。WordPress 5.6以降では「Application Passwords(アプリケーションパスワード)」という機能が標準搭載されており、これを利用するのが最も簡単な方法です。設定方法は以下の通りです。

  • WordPress管理画面にログインする
  • 「ユーザー」→「プロフィール」画面を開く
  • ページ下部の「アプリケーションパスワード」欄で新しいパスワード名を入力し、「新しいアプリケーションパスワードを追加」をクリックする
  • 発行されたパスワードを控えておく(この画面でしか表示されないため注意)

この「ユーザー名」と「アプリケーションパスワード」の組み合わせを使うことで、Basic認証によるAPIアクセスが可能になります。

Pythonからrequestsライブラリで記事を投稿する

WordPress側の準備が整ったら、Pythonからrequestsライブラリを使って投稿処理を実装します。requestsは標準的なHTTPリクエスト用ライブラリで、以下のようにインストールできます。

pip install requests

次に、Application Passwordsを使ってBasic認証ヘッダーを作成し、REST APIに記事データをPOSTするコードを作成します。

import requests
import base64

# WordPressサイトの情報
url = "https://example.com/wp-json/wp/v2/posts"
username = "your_username"
app_password = "xxxx xxxx xxxx xxxx xxxx xxxx"

# Basic認証用トークンの作成
credentials = f"{username}:{app_password}"
token = base64.b64encode(credentials.encode()).decode()

headers = {
    "Authorization": f"Basic {token}",
    "Content-Type": "application/json"
}

# 投稿する記事データ
data = {
    "title": "Pythonから自動投稿したテスト記事",
    "content": "これはPythonとWordPress REST APIを使って投稿された記事です。",
    "status": "publish"  # 下書きにしたい場合は "draft" を指定
}

response = requests.post(url, headers=headers, json=data)

print(response.status_code)
print(response.json())

上記のコードを実行すると、statusに指定した状態(公開または下書き)で記事がWordPressサイトに投稿されます。レスポンスのJSONには投稿ID(id)や公開URL(link)などの情報が含まれるため、投稿結果を確認する際に活用できます。

タイトルや本文だけでなく、カテゴリー(categories)やタグ(tags)、アイキャッチ画像(featured_media)などもデータに追加することで、より詳細な投稿内容を自動化できます。

まとめ

本記事では、PythonとWordPress REST APIを組み合わせて記事を自動投稿する方法を紹介しました。WordPress側でApplication Passwordsを設定し、Pythonのrequestsライブラリを使ってAPIにデータを送信するだけで、手作業なしに記事を投稿できる仕組みを構築できます。

定期的な記事投稿や、外部システムと連携した自動化ワークフローを検討している場合は、まずは今回紹介した基本的な投稿処理から試してみると良いでしょう。慣れてきたら、カテゴリーやタグ、画像アップロードなどの機能を組み合わせて、より実用的な自動投稿システムへと発展させることができます。

\ 高速WordPress環境を構築するなら /

【15日間無料】コアサーバーでWordPressを始める >

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