パスワードを直接使わない!WordPress REST APIを活用した安全な自動投稿

記事の生成と検証が完了したら、いよいよそのデータをWordPressへ送信するフェーズに入ります。しかし、プログラムからWordPressに接続する際、管理画面のログインパスワードを直接コードに書き込むような実装はセキュリティ上非常に危険です。

本記事では、WordPressに標準搭載されている「REST API」と「アプリケーションパスワード」を組み合わせ、安全かつスムーズに記事を「下書き投稿」する仕組みについて解説します。

WordPress REST APIとは?

WordPress REST APIとは、外部のプログラム(今回の場合はPythonスクリプト)からHTTPリクエストを通じてWordPressのデータ(記事、メディア、カテゴリーなど)を操作できる仕組みです。これを利用することで、Webブラウザで管理画面を開かなくても、プログラム経由で記事を作成・更新できます。

セキュアな認証を実現する「アプリケーションパスワード」

従来の管理画面用パスワードを使用する代わりに、WordPressのユーザープロフィール画面から発行できる「アプリケーションパスワード」を使用します。

専用パスワードの発行: 自動投稿ツール専用のランダムな文字列が発行されます。

権限の分離と取り消し: 万が一このパスワードが漏洩した場合でも、管理画面からの即時無効化が可能であり、メインのログインパスワードには影響しません。

「公開」ではなく「下書き(Draft)」で投稿する理由

本システムでは、APIリクエスト時のステータスをstatus: “draft”に固定して送信します。

# API送信データの例(イメージ)
payload = {
    "title": article_data["title"],
    "content": article_data["content"],
    "status": "draft",  # 必ず「下書き」として送信
    "comment_status": "closed",
}

あえて即時公開を行わず「下書き」として投稿する理由は以下の通りです。

最終チェックの機会を確保: 人間の目でレイアウトや文脈を最終確認できる。

誤送信事故の防止: 開発中のテストデータが誤って検索エンジンにインデックスされるのを防ぐ。

SEOプラグイン等の最終確認: アイキャッチ画像やSEOメタ情報が意図通りにセットされているか確認できる。

まとめ

WordPress REST APIとアプリケーションパスワードを正しく組み合わせることで、セキュリティを高保ちながら完全自動での下書き作成が可能になります。プログラムから送信された記事が管理画面に「下書き」として一瞬で届く体験は、Web運用を劇的に変えてくれます。次回は、記事のクリック率を左右する「アイキャッチ画像の自動取得とアタッチ技術」について解説します。

編集後記

外部ツールとWordPressを連携させる際、セキュリティに対する配慮は絶対に怠れません。アプリケーションパスワードを活用し、権限を最小限に絞った上で「下書き」として届ける仕組みにすることで、万が一の誤動作やトラブルにも迅速に対応できる安心感が生まれます。技術の便利さと安全性のバランスを常に意識することが大切です。