当サイトはアフィリエイト広告を利用しています。
WordPressの記事作成を自動化するとき、普段の管理画面ログインパスワードを外部スクリプトへ渡す必要はありません。
WordPressには、外部アプリやスクリプト専用のApplication Passwordが標準搭載されています。
この記事では、原稿作成 → REST APIで送信 → draftで止める → 人間が確認して公開という、個人サイトでも扱いやすい最小構成を説明します。
Application Passwordとは?
通常のWordPressログイン用パスワードとは別に発行できるAPI用の認証情報です。
- 用途ごとに別々に発行できる
- 不要になった認証情報だけ個別に失効できる
- WordPress管理画面の通常ログイン用パスワードとは別物
WordPress公式では、Application PasswordをHTTP Basic Authenticationと組み合わせてREST APIで使う方法が案内されています。
前提:HTTPSで使う
Basic Authenticationの資格情報は暗号化されていない通信では盗聴される可能性があるため、WordPress公式も常にHTTPSを使うよう案内しています。
サイトがhttp://のままなら、API自動化より先にSSL/HTTPS化を終わらせてください。
1. Application Passwordを作る
- WordPress管理画面へログイン
- ユーザー → プロフィールを開く
- アプリケーションパスワードまでスクロールする
sidebiz-draft-uploaderなど用途が分かる名前を入力する- 新しいApplication Passwordを生成する
生成されたPasswordはその場で保存してください。公式ドキュメントでは再表示されないと案内されています。画面では読みやすいよう空白区切りで表示されることがありますが、空白あり・なしのどちらでも認証できます。
2. 投稿作成用REST API
通常の投稿を作るendpointは次です。
POST https://example.com/wp-json/wp/v2/posts
statusをdraftにすれば、一般公開せず管理画面へ下書き保存できます。
{
"title": "APIから作成した下書き",
"content": "<p>本文です。</p>",
"status": "draft"
}
3. Pythonの最小例
import os
import json
import base64
import urllib.request
base = os.environ["WP_BASE_URL"].rstrip("/")
user = os.environ["WP_USERNAME"]
app_pw = os.environ["WP_APP_PASSWORD"]
payload = json.dumps({
"title": "APIから作成した下書き",
"content": "<p>本文です。</p>",
"status": "draft",
}).encode("utf-8")
token = base64.b64encode(f"{user}:{app_pw}".encode()).decode()
req = urllib.request.Request(
f"{base}/wp-json/wp/v2/posts",
data=payload,
method="POST",
headers={
"Authorization": f"Basic {token}",
"Content-Type": "application/json",
},
)
with urllib.request.urlopen(req, timeout=30) as r:
print(r.read().decode("utf-8"))
なぜ「自動公開」ではなくdraftで止めるのか
AIで原稿生成を自動化しても、料金、キャンペーン、SaaSの画面、API仕様、アフィリエイトリンクなどは変わります。
特に副業サイトの立ち上げ期は、記事生成 → WordPressへdraft保存 → 事実確認 → 公開にしておく方が、誤情報や壊れたリンクを公開するリスクを抑えられます。
Application Passwordの扱い方
- 通常のWordPressログインパスワードを代用しない
- コードやGitHubへ直接書かず、環境変数などへ保存する
- 用途ごとにApplication Passwordを分ける
- 使わなくなったものはプロフィール画面からrevokeする
- 漏えいが疑われたら、そのApplication Passwordだけ削除して作り直す
401 / 403になったときの確認
WordPress公式は、認証エラー時に次の確認を案内しています。
- HTTPSとして正しく認識されているか
- 通常パスワードではなくApplication Passwordを使っているか
- security pluginやcustom codeでApplication Passwordが無効化されていないか
- proxy等が
Authorizationheaderを削除していないか
Application Passwordを使った外部ツール連携の実例として、Value AI WriterとWordPressを連携する方法も確認できます。
まとめ
WordPressの下書き自動化は、有料プラグインなしでもREST APIとApplication Passwordで実現できます。
通常の管理画面パスワードをコードへ埋め込まず、公開まで自動化しないのが、個人サイトの初期運用では扱いやすい方法です。
