導入
「毎日のブログ更新を自動化したい」「複数の記事を一括で投稿したい」——そんな悩みを持つ方に向けて、この記事ではPythonを使ってWordPressに自動投稿する方法を初心者向けに解説します。
WordPressには標準でREST APIという仕組みが搭載されており、これを利用することでPythonのプログラムから直接記事を投稿できます。難しい専門知識がなくても、この記事の手順通りに進めれば自動投稿の第一歩を踏み出せます。
WordPress側の準備(REST APIとアプリケーションパスワード)
Pythonから投稿するためには、まずWordPress側で「アプリケーションパスワード」を発行する必要があります。これはWordPress 5.6以降に標準搭載されている機能で、通常のログインパスワードとは別に、外部アプリケーション専用の認証情報を発行できるものです。
設定手順は以下の通りです。
- WordPress管理画面にログインします。
- 「ユーザー」→「プロフィール」ページを開きます。
- ページ下部にある「アプリケーションパスワード」の項目に、任意の名前(例:python-post)を入力し、「新規追加」をクリックします。
- 発行されたパスワードが表示されるので、必ずその場でコピーして控えておきます(再表示はできません)。
この発行したユーザー名とアプリケーションパスワードを使って、後述するPythonスクリプトから認証を行います。なお、サイトによってはREST APIが無効化されている場合があるため、セキュリティプラグインなどを利用している場合は事前に設定を確認しておきましょう。
Pythonで投稿を実行する
WordPress REST APIへのアクセスには、Pythonの標準的なHTTPライブラリであるrequestsを使用します。まだインストールしていない場合は、以下のコマンドで導入してください。
pip install requests
次に、記事を投稿するサンプルコードを紹介します。
import requests
# WordPressサイトのURLとREST APIのエンドポイント
url = "https://your-site.com/wp-json/wp/v2/posts"
# 認証情報(ユーザー名とアプリケーションパスワード)
username = "your_username"
app_password = "your_application_password"
# 投稿する記事の内容
post_data = {
"title": "Pythonから自動投稿したタイトル",
"content": "これはPythonを使って自動投稿された本文です。",
"status": "publish" # 下書きにしたい場合は "draft" にする
}
# POSTリクエストを送信
response = requests.post(
url,
json=post_data,
auth=(username, app_password)
)
# 結果を確認
if response.status_code == 201:
print("投稿に成功しました!")
print("投稿ID:", response.json()["id"])
else:
print("投稿に失敗しました。ステータスコード:", response.status_code)
print(response.text)
このコードでは、requests.postを使ってWordPressのREST APIにデータを送信しています。認証には先ほど発行したアプリケーションパスワードを使うBasic認証方式を利用しており、status_codeが201であれば投稿が正常に作成されたことを意味します。
記事のタイトルや本文を変数化しておけば、CSVファイルやリストから複数の記事内容を読み込んで、繰り返し処理(forループ)で連続投稿することも可能です。まずはこのシンプルな形で動作確認をしてから、徐々に処理を拡張していくとよいでしょう。
まとめ
この記事では、PythonとWordPress REST APIを使って自動投稿を行う基本的な方法を解説しました。ポイントをまとめると以下の通りです。
- WordPress管理画面から「アプリケーションパスワード」を発行する。
- Pythonの
requestsライブラリを使ってREST APIにPOSTリクエストを送信する。 - タイトルや本文、公開ステータスなどをデータとして指定し、投稿を作成する。
この基本の仕組みを理解できれば、記事内容を外部ファイルから読み込んで自動化したり、定期実行の仕組みと組み合わせたりと、さまざまな応用が可能になります。まずは今回紹介したコードを実際に動かしてみて、自動投稿の仕組みに慣れていきましょう。
\ 高速WordPress環境を構築するなら /
