WordPress初心者向け:Pythonで記事投稿を自動化する方法と手順
WordPressでブログを運営していると、毎日の記事投稿作業に時間がかかると感じることはないでしょうか。特に、複数の記事を定期的に投稿する場合や、他のシステムで作成したデータを反映させたい場合、手作業での投稿は非効率になりがちです。
そこで役立つのが、Pythonを使った記事投稿の自動化です。WordPressには「REST API」という仕組みが標準で用意されており、これを利用することで、Pythonのプログラムから直接記事を投稿できるようになります。この記事では、WordPress初心者の方に向けて、Pythonを使ってWordPressに記事を自動投稿する方法と手順をわかりやすく解説します。
自動化の準備をしよう
Pythonで記事投稿を自動化するためには、まずWordPress側とPython側でいくつかの準備が必要です。ここでは基本的な準備手順を説明します。
1. WordPress REST APIについて
WordPressにはバージョン4.7以降、REST APIという機能が標準で搭載されています。これは、WordPressの記事データなどを外部プログラムから操作できるようにする仕組みです。特別なプラグインを入れなくても、通常のWordPressサイトであればこの機能は基本的に利用可能です。
2. アプリケーションパスワードを発行する
WordPress 5.6以降では、「アプリケーションパスワード」という機能が標準で搭載されています。これは、通常のログインパスワードとは別に、外部プログラム専用の認証用パスワードを発行できる機能です。
発行手順は以下の通りです。
1. WordPress管理画面にログインする
2. 「ユーザー」→「プロフィール」を開く
3. ページ下部の「アプリケーションパスワード」欄に任意の名前(例:python-script)を入力し、「新規追加」をクリック
4. 表示されたパスワードをコピーして保存しておく(この画面を閉じると二度と表示されません)
3. Pythonの環境を準備する
Pythonがインストールされていない場合は、公式サイトからインストールしておきましょう。また、HTTP通信を行うために「requests」というライブラリを使用します。以下のコマンドでインストールできます。
pip install requests
これで、Pythonから記事投稿を行うための準備が整いました。
Pythonで記事を投稿する手順
準備が整ったら、実際にPythonのコードを書いてWordPressに記事を投稿してみましょう。WordPress REST APIでは、Basic認証という方式で「ユーザー名」と「アプリケーションパスワード」を使ってログインし、投稿用のエンドポイントにデータを送信します。
以下は、記事を1件投稿するシンプルなサンプルコードです。
import requests
# WordPressサイトのURLとユーザー情報
url = "https://example.com/wp-json/wp/v2/posts"
username = "あなたのユーザー名"
app_password = "発行したアプリケーションパスワード"
# 投稿する記事の内容
data = {
"title": "Pythonから投稿したテスト記事",
"content": "これはPythonを使って自動投稿したテスト記事の本文です。",
"status": "draft" # 公開する場合は "publish"
}
# リクエストを送信
response = requests.post(
url,
json=data,
auth=(username, app_password)
)
# 結果を確認
if response.status_code == 201:
print("投稿に成功しました。")
print("記事ID:", response.json()["id"])
else:
print("投稿に失敗しました。ステータスコード:", response.status_code)
print(response.text)
コードのポイントを簡単に説明します。
・「url」には、投稿対象のWordPressサイトのアドレスに「/wp-json/wp/v2/posts」を付けたものを指定します。
・「auth」パラメータに、ユーザー名とアプリケーションパスワードをタプル形式で渡すことで、Basic認証が行われます。
・「status」を「draft」にすると下書き保存になり、「publish」にすると即座に公開されます。まずは下書きで動作確認するのがおすすめです。
・レスポンスのステータスコードが201であれば、投稿が正常に作成されたことを意味します。
このコードを実行し、WordPressの管理画面から投稿一覧を確認すると、Pythonから送信した記事が反映されているはずです。うまくいかない場合は、URLの綴りやユーザー名、アプリケーションパスワードに誤りがないか、またサイトがREST APIへのアクセスを制限する設定になっていないかを確認してみてください。
まとめ
この記事では、WordPress初心者の方に向けて、Pythonを使った記事投稿の自動化方法を解説しました。WordPressに標準搭載されているREST APIと、アプリケーションパスワードという認証機能を組み合わせることで、特別な追加プラグインを導入しなくても、Pythonから直接記事を投稿できることがわかりました。
手順としては、まずWordPress側でアプリケーションパスワードを発行し、Python側では「requests」ライブラリを使ってREST APIのエンドポイントにデータを送信するだけです。今回紹介したサンプルコードを土台にすれば、投稿するタイトルや本文を変数化したり、複数記事をまとめて投稿する処理へと発展させたりすることも可能です。
最初は下書き状態で投稿しながら動作を確認し、慣れてきたら公開設定に変更するなど、少しずつ試しながら自動化の仕組みを自分のブログ運用に取り入れてみてください。
\ 高速WordPress環境を構築するなら /
