第1回では、ChatGPTやCodexで作成したMarkdown記事を、WordPressへ下書き投稿するツールの全体像を紹介しました。
今回は、PythonからWordPressへ接続する準備をします。
最初に作るのは、WordPressへ記事を投稿するコードではありません。
まずは、PythonからWordPressRESTAPIへ接続できるかを確認します。
接続確認ができれば、次回以降でMarkdownファイルの読み込みや、WordPressへの下書き投稿処理に進めます。

今回作るもの
今回は、WordPressRESTAPIへ接続確認するための小さなPythonコードを作ります。
作るファイルは次の3つです。
| ファイル | 役割 |
|---|---|
| .env.example | 接続情報のサンプルを書く |
| .env | 実際のWordPress接続情報を書く |
| check_connection.py | WordPressRESTAPIへ接続確認する |
今回は、投稿処理までは作らないでWordPressRESTAPIへ接続できることを確認します。
.envには実際の接続情報を書くため、自分以外が見られる場所には置かないようにします。
公開用のサンプルには.env.exampleを使います。
ディレクトリ構成
今回のサンプルコードは、以下のGitHubで公開しています。
https://github.com/ojichiku/public-python-samples/tree/main/samples/wp-rest-api-connection-check
public-python-samples/
└─ samples/
└─ wp-rest-api-connection-check/
├─ .env.example
└─ check_connection.py実際に動かすときは、.env.exampleをコピーして.envを作成します。
.envには本物の接続情報を書くため、公開用のサンプルには含めていません。
作業の流れ
今回の作業は、次の順番で進めます。
| 手順 | 内容 |
|---|---|
| 1 | WordPressでアプリケーションパスワードを作成する |
| 2 | Pythonで使うライブラリをインストールする |
| 3 | .env.exampleを作成する |
| 4 | .envを作成して接続情報を書く |
| 5 | check_connection.pyを作成する |
| 6 | Pythonで接続確認を実行する |
WordPress側で接続用パスワードを作り、Python側でその情報を使って接続確認します。

WordPressRESTAPIとは
WordPressRESTAPIは、外部のプログラムからWordPressを操作するための仕組みです。
普段はWordPressの管理画面から記事を書いたり、カテゴリを設定したりします。
WordPressRESTAPIを使うと、Pythonなどの外部プログラムからWordPressの記事やユーザー情報を扱えます。
今回作る投稿ツールでは、PythonからWordPressへ記事データを送るためにWordPressRESTAPIを使います。
この記事では、まず接続確認だけを行います。
接続確認に使うURLは次の形です。
https://自分のWordPressサイト/wp-json/wp/v2/users/meこのURLへPythonからアクセスし、ユーザー情報が取得できれば接続確認は成功です。
投稿ツールに必要な情報
PythonからWordPressへ接続するには、次の3つが必要です。
| 項目 | 内容 |
|---|---|
| WordPressサイトURL | 自分のWordPressサイトのURL |
| WordPressユーザー名 | WordPress管理画面のユーザー名 |
| アプリケーションパスワード | 外部接続用に作成するパスワード |
これらをPythonファイルに直接書くと、コード公開時に漏れる可能性があります。
今回は.envに書いて、Pythonから読み込む形にします。
アプリケーションパスワードを作成する
まずは、WordPress管理画面でアプリケーションパスワードを作成します。
WordPress管理画面にログインし、ユーザーのプロフィール画面を開きます。
プロフィール画面の中に、アプリケーションパスワードを作成する項目があります。

アプリケーションパスワードを作成すると、英数字が並んだパスワードが表示されます。
このパスワードは、あとで.envファイルに設定します。
表示されたタイミングでコピーして保存します。

分からなくなった場合は、古いアプリケーションパスワードを削除し、新しく作成します。
Pythonで使うライブラリ
今回使うPythonライブラリは、次の2つです。
| ライブラリ | 用途 |
|---|---|
| requests | WordPressRESTAPIへHTTPリクエストを送る |
| python-dotenv | .envファイルから接続情報を読み込む |
requestsはWordPressRESTAPIへ接続するために使います。
python-dotenvは.envファイルの内容をPythonから読み込むために使います。
.env.exampleを作成する
次に、.env.exampleを作成します。
.env.exampleは、接続情報のサンプルファイルです。
実際の接続情報は書きません。
samples/wp-rest-api-connection-check/に、.env.exampleを作成します。
内容は次の通りです。
WP_SITE_URL=https://example.com
WP_USERNAME=your_username
WP_APP_PASSWORD=your_application_password.env.exampleは公開用のサンプルとして使います。
本物のWordPressサイトURL、ユーザー名、アプリケーションパスワードは書かないようにします。
.envを作成する
次に、実際に接続確認で使う.envを作成します。
.env.exampleをコピーして、.envという名前にします。
public-python-samples/
└─ samples/
└─ wp-rest-api-connection-check/
├─ .env.example
├─ .env
└─ check_connection.py.envには、自分のWordPress接続情報を書きます。
WP_SITE_URL=https://example.com
WP_USERNAME=your_username
WP_APP_PASSWORD=xxxx xxxx xxxx xxxx xxxx xxxx| 項目 | 書く内容 |
|---|---|
| WP_SITE_URL | 自分のWordPressサイトURL |
| WP_USERNAME | WordPressのユーザー名 |
| WP_APP_PASSWORD | 作成したアプリケーションパスワード |
アプリケーションパスワードに半角スペースが含まれている場合は、そのまま貼り付けます。
前後に余計な空白が入らないように注意します。
.envは自分以外が見られる場所には置かないようにします。
check_connection.pyを作成する
次に、WordPressRESTAPIへ接続確認するPythonファイルを作成します。
ファイル名はcheck_connection.pyにします。
import os
import requests
from dotenv import load_dotenv
def main() -> None:
load_dotenv()
site_url = os.getenv("WP_SITE_URL")
username = os.getenv("WP_USERNAME")
app_password = os.getenv("WP_APP_PASSWORD")
if not site_url or not username or not app_password:
raise ValueError(".envに必要な接続情報が設定されていません。")
url = f"{site_url.rstrip('/')}/wp-json/wp/v2/users/me"
response = requests.get(
url,
auth=(username, app_password),
timeout=10,
)
print(f"status_code: {response.status_code}")
if response.ok:
user = response.json()
print("WordPressRESTAPIへの接続に成功しました。")
print(f"user_id: {user.get('id')}")
print(f"name: {user.get('name')}")
return
print("WordPressRESTAPIへの接続に失敗しました。")
print(response.text)
if __name__ == "__main__":
main()このコードでは、.envからWordPressサイトURL、ユーザー名、アプリケーションパスワードを読み込みます。
接続情報が足りない場合は、エラーにしています。
そのあと、/wp-json/wp/v2/users/meへGETリクエストを送ります。
接続確認を実行する
作成したフォルダへ移動します。
cd samples/wp-rest-api-connection-check次に、Pythonファイルを実行します。
python check_connection.py接続に成功すると、次のような結果が表示されます。
status_code: 200
WordPressRESTAPIへの接続に成功しました。
user_id: 99
name: usernamestatus_code: 200が表示されれば、WordPressRESTAPIへの接続は成功です。
これで、PythonからWordPressへ接続できることを確認できました。
うまく接続できないとき
接続できない場合は、まず次の3つを確認します。
- .envの値が正しいか
- アプリケーションパスワードをコピーし間違えていないか
- requestsとpython-dotenvをインストールしているか
最初は、コードより設定ミスを疑った方が早いです。
今回のまとめ
今回は、PythonからWordPressRESTAPIへ接続する準備をしました。
作成したファイルは、.env.example、.env、check_connection.pyです。
.env.exampleには接続情報のサンプルを書き、.envには実際のWordPressサイトURL、ユーザー名、アプリケーションパスワードを書きました。
check_connection.pyでは、.envから接続情報を読み込み、/wp-json/wp/v2/users/meへアクセスしました。
status_code: 200が表示されれば、PythonからWordPressRESTAPIへ接続できています。
次回は、Markdownファイルを読み込んで、タイトルや本文を取り出す処理を作ります。
WordPressへ投稿する前に、まずはMarkdownの中身をPythonで扱える形にしていきます。