この記事では、WordPressのアプリケーションパスワード機能を使用して、REST APIにアクセスするための手順を解説します。REST APIを通じてWordPressのデータにアクセスする際、認証が必要です。アプリケーションパスワードはそのために利用できる便利なツールです。
アプリケーションパスワードとは?
アプリケーションパスワードは、WordPress 5.6以降で導入された機能で、APIを通じた外部アプリケーションからのWordPressアクセスを許可するための一時的なパスワードです。特定のユーザーに紐づけられ、通常のログインパスワードとは別に管理できます。これにより、API経由の操作が安全に行われます。
手順
1. WordPressダッシュボードにログイン
まず、WordPressのダッシュボードに管理者ユーザーとしてログインします。アプリケーションパスワードは管理者権限が必要な場合が多いので、適切な権限でアクセスしてください。
2. プロフィール画面を開く
次に、「ユーザー」 メニューから自分のプロフィールページを開きます。管理画面の左側メニューから 「ユーザー」→「プロフィール」 の順に進んでください。
3. アプリケーションパスワードセクションを探す
プロフィールページの一番下までスクロールすると、「アプリケーションパスワード」 というセクションが表示されています。このセクションで、アプリケーションパスワードを発行することができます。
4. アプリケーションパスワードの生成
「新しいアプリケーションパスワードの名前を入力」 のフィールドに、パスワードを使用するアプリケーションや用途にわかりやすい名前(例: “REST API Access”)を入力します。入力が終わったら、「アプリケーションパスワードの追加」 ボタンをクリックします。
5. パスワードの確認と保存
アプリケーションパスワードが生成され、画面に表示されます。このパスワードは一度しか表示されないため、すぐに安全な場所に保存してください。表示されたパスワードを控え忘れると、再度生成し直す必要があるので注意が必要です。
確認用スクリプトの作成
次に、WordPressのREST APIを使用して記事を取得するリクエストを送る簡単なPythonスクリプトを作成します。このスクリプトでは、Basic認証を使用し、取得したアプリケーションパスワードを使います。
必要なライブラリをインポートしておきます。
pip install requests
以下がスニペットです。
import requests
from requests.auth import HTTPBasicAuth
import base64
# WordPressサイトのURL
base_url = "https://your-wordpress-site.com"
# WordPressのユーザー名とアプリケーションパスワード
wp_user = "your-username"
wp_app_password = "your-app-password"
# APIエンドポイント (投稿の取得)
url = f"{base_url}/wp-json/wp/v2/posts"
# Basic認証用のヘッダーを設定
auth = HTTPBasicAuth(wp_user, wp_app_password)
# リクエストを送信
response = requests.get(url, auth=auth)
# レスポンスのステータスコードをチェック
if response.status_code == 200:
# 正常にデータが取得できた場合、結果を表示
posts = response.json()
for post in posts:
print(f"Title: {post['title']['rendered']}")
else:
# エラーメッセージを表示
print(f"Error: {response.status_code}, {response.text}")