REST APIの活用
REST APIは、WordPressのデータ(投稿・固定ページ・ユーザー情報等)を外部のプログラムから取得・操作できる仕組みです。WordPress本体に標準搭載されています。
① REST APIとは
WordPress REST APIは、サイトURLに/wp-json/を付けてアクセスすると、投稿・固定ページ・カテゴリ・ユーザー情報などをJSON形式で取得できる標準機能です。WordPress 4.7(2016年)以降、追加のプラグインなしで全サイトに搭載されており、ブロックエディタ(Gutenberg)の保存処理や、公式モバイルアプリとの通信にも使われています。「外部と連携するための特別な機能」ではなく、既に裏側で常時動いている仕組みだと理解しておくとよいでしょう。
② 主な活用例
- スマートフォンアプリからWordPressのコンテンツを表示する
- ヘッドレスCMSとして、React・Next.js等のフロントエンドと組み合わせる
- 外部システムと連携して、自動投稿・データ同期を行う
- 近年は、AIアシスタントツール(Claude・Cursor等)がWordPressをデータベースのように扱い、コンテンツの読み書きを行うケースも増えている
③ 有効になっているか確認する方法
ブラウザで自サイトの/wp-json/(例:https://example.com/wp-json/)にアクセスし、JSON形式のデータが表示されればREST APIは通常通り動作しています。エラーが表示される場合は、セキュリティプラグインやサーバー側の設定でブロックされている可能性があります。
④ 外部連携時の認証方法
外部サービスや自作のスクリプトからREST API経由でデータを書き込む(投稿を作成する等)場合は、認証が必要です。WordPress 5.6以降は「アプリケーションパスワード(Application Passwords)」という機能が標準搭載されており、追加プラグインなしで安全な連携ができます。
- ユーザーのプロフィール画面から、連携先ごとに個別のパスワードを発行できる
- 発行したパスワードはwp-adminへのログインには使えず、REST API経由の認証専用
- 連携を停止したい場合は、該当のアプリケーションパスワードだけを個別に無効化できる
⑤ セキュリティ上の注意点
/wp-json/wp/v2/usersエンドポイント経由でユーザー名の一部が外部から取得できてしまいます。この情報はブルートフォース攻撃の足がかりに利用されることがあるため、REST API認証プラグイン等を使い、不要なエンドポイントへのアクセスを制限することを推奨します。REST APIはブロックエディタなど多くの機能が依存しているため、丸ごと無効化することは推奨されません。「必要なエンドポイントは残し、不要なもの(ユーザー一覧等)だけを制限する」という考え方で対策するのが基本です。
⑥ GraphQLという選択肢
ヘッドレスCMSとして本格的にフロントエンドを構築する場合、REST APIの代わりにWPGraphQLを使う選択肢もあります。REST APIは決められた形式でデータを返しますが、GraphQLはクライアント側で必要なデータだけを指定して取得できるため、過剰なデータ転送を防ぎパフォーマンスを最適化しやすいという特徴があります。React・Next.js・Gatsby・Vue.js等と組み合わせる本格的なヘッドレスCMS構築を検討している場合は、あわせて比較してみてください。