WordPress REST APIは、WordPressの投稿・固定ページ・カテゴリー・メディアなどのデータを、HTTPを使って外部のアプリやプログラムから取得・操作できる仕組みです。
「API」と聞くと開発者向けの難しい機能に見えますが、WordPress本体の管理画面やプラグインなどでも利用される重要な仕組みです。初心者は、細かいプログラムの書き方よりも、何のために使われていて、無効化してよいのかを理解することが大切です。
30秒でわかる結論
30秒でわかる結論
- WordPress REST APIは、HTTP経由でWordPressのデータをやり取りする仕組み
- 投稿・固定ページ・カテゴリー・メディア・ユーザーなどをAPIから扱える
- 基本URLは通常
/wp-json/ - データの取得にはGET、作成にはPOST、更新にはPUT・POST、削除にはDELETEなどを使う
- 公開情報は認証なしで取得できる場合があるが、非公開情報や変更操作には認証・権限確認が必要
- 外部アプリ、ヘッドレスWordPress、管理画面、プラグイン連携などで利用される
- 「使わないから」という理由だけでREST API全体を無効化するのはおすすめしない
WordPress REST APIとは?
REST APIとは、Web上のURLに対してHTTPリクエストを送り、データを取得したり変更したりする仕組みです。
WordPress REST APIでは、WordPress内の投稿・固定ページ・カテゴリー・メディアなどを「リソース」として扱い、JSON形式でデータをやり取りします。
初心者向けに一言でいうと
WordPress REST APIは、WordPressの中身を、ブラウザ画面以外のプログラムから読み書きするための窓口です。
REST APIはどこにある?
一般的なWordPressサイトでは、REST APIの基本入口は次のようなURLです。
REST APIの基本URL
https://example.com/wp-json/
WordPress公式では、パーマリンクが有効な通常環境で /wp-json/ がREST APIの基本パスとして案内されています。
このURLへアクセスすると、そのWordPressサイトで利用可能なAPIの情報がJSON形式で表示されます。
wp-jsonが見える=不正アクセスではない
REST APIの入口が外部から見えること自体は、WordPressの標準仕様です。重要なのは、非公開データや変更操作が適切な認証・権限確認なしで許可されていないことです。
REST APIで何ができる?
WordPress REST APIでは、さまざまなデータを扱えます。
| 対象 | 代表的な用途 |
|---|---|
| 投稿 | 記事一覧の取得・投稿作成・更新 |
| 固定ページ | ページ情報の取得・更新 |
| カテゴリー・タグ | 分類情報の取得・登録 |
| メディア | 画像情報の取得・アップロード |
| コメント | コメント情報の取得・管理 |
| ユーザー | 権限に応じたユーザー情報の取得 |
| 設定 | 認証・権限に応じた設定の取得・変更 |
実際にどのデータを取得・変更できるかは、WordPress本体、ログイン状態、ユーザー権限、プラグインが追加したAPIなどによって変わります。
REST APIの仕組み
REST APIでは、クライアントがURLへHTTPリクエストを送り、WordPressが処理結果を返します。
ルートとエンドポイントの違い
WordPress REST APIでは、「ルート」と「エンドポイント」という言葉がよく出てきます。
| 用語 | 意味 |
|---|---|
| ルート | APIへアクセスするURL上の経路 |
| エンドポイント | そのルートで実行できる具体的な処理 |
投稿ID 123を扱う例
/wp-json/wp/v2/posts/123
同じルートでも、GETなら投稿を取得、PUTやPOSTなら更新、DELETEなら削除というように、HTTPメソッドによって実行する処理が変わります。
GET・POST・PUT・DELETEとは?
| HTTPメソッド | 主な用途 |
|---|---|
| GET | データを取得する |
| POST | 新しいデータを作成する |
| PUT | 既存データを更新する |
| DELETE | データを削除する |
| OPTIONS | 利用できる操作などを確認する |
URLだけでは処理内容は決まらない
REST APIでは、どのルートへ、どのHTTPメソッドでアクセスしたかを組み合わせて処理内容を決めます。
REST APIはJSONでデータを返す
WordPress REST APIでは、基本的にJSON形式でデータをやり取りします。
イメージ
記事タイトル:会社案内
記事ID:123
公開状態:publish
↓
これらをプログラムが扱いやすいJSON形式で返す
通常のWebページではHTMLを人間が読む形で表示しますが、REST APIはアプリやプログラムが扱いやすい構造化データを返す点が大きな違いです。
認証なしで取得できる情報があるのは危険?
公開済みの記事やカテゴリーなど、もともとWebサイト上で公開されている情報は、REST APIから認証なしで取得できる場合があります。
一方、非公開情報の取得、投稿の作成・更新・削除などは、認証とユーザー権限の確認が必要です。
| 操作例 | 一般的な考え方 |
|---|---|
| 公開記事一覧を取得 | 認証なしで可能な場合がある |
| 下書きを取得 | 認証・権限が必要 |
| 新規投稿を作成 | 認証・投稿権限が必要 |
| 投稿を削除 | 認証・削除権限が必要 |
「APIが公開されている」と「何でも操作できる」は別
REST APIの入口が見えていても、重要な操作まで匿名ユーザーへ許可されているわけではありません。各エンドポイントで権限確認が行われます。
REST APIの認証方法
WordPress管理画面内からREST APIを使う場合は、ログインCookieとnonceを利用した認証が使われます。
外部アプリやスクリプトから利用する場合は、WordPress標準のApplication Passwordsを利用できます。
Application Passwordsとは?
外部アプリごとに発行できる専用パスワードです。WordPress本体のログインパスワードを第三者のアプリへ渡さずにAPI連携できます。不要になった連携だけ個別に無効化できます。
Application PasswordsはWordPress 5.6以降に標準搭載されています。外部通信で利用するときはHTTPSを使用します。
WordPress REST APIは何に使われている?
WordPress管理画面
WordPress管理画面の一部機能はREST APIを利用します。そのため、REST API全体を無効化すると管理機能が正常に動かなくなる場合があります。
ブロックエディター
ブロックエディターを含む管理画面側の機能では、WordPress内部のデータ取得や更新でREST APIが利用されます。
スマートフォン・外部アプリ
WordPressの投稿データを外部アプリから取得したり、認証後に記事を投稿したりする用途があります。
ヘッドレスWordPress
WordPressをコンテンツ管理だけに使い、表示部分をJavaScriptフレームワークや別アプリで作る構成では、REST APIを使って記事データを取得できます。
プラグイン・外部サービス連携
プラグインが独自のREST APIエンドポイントを追加したり、外部システムとWordPressを連携したりする場合があります。
ヘッドレスWordPressとの関係
通常のWordPressでは、WordPress自身がPHPでHTMLを生成してブラウザへ返します。
ヘッドレスWordPressでは、WordPressは記事管理を担当し、表示部分を別のシステムが担当します。
記事・画像・カテゴリーを管理
データをJSONで提供
取得したデータを使って画面を表示
一般的なブログや会社サイトで、ヘッドレス構成にする必要はありません。開発要件がある場合に選択する構成です。
REST APIとXML-RPCの違い
WordPressには、外部からデータを操作する仕組みとしてXML-RPCもあります。
| 項目 | REST API | XML-RPC |
|---|---|---|
| データ形式 | 主にJSON | XML |
| 通信 | HTTPメソッドを利用 | XML-RPC方式 |
| 現在の位置づけ | WordPressの主要なAPI基盤 | 旧来から存在する外部連携方式 |
| 用途 | 管理画面・アプリ・ヘッドレス・連携 | 対応する外部ツール・旧来の連携 |
XML-RPCを使っていないからREST APIも不要、という判断はできません。WordPress本体内での使われ方が異なります。
REST APIは無効化すべき?
基本的には、REST API全体を無効化しない方がよいです。
WordPress公式のREST API FAQでも、REST APIを無効化すると、それに依存するWordPress管理機能が壊れるため、無効化しないよう案内されています。
「使っていないから全部停止」ではなく、必要な範囲だけ制限する
一般的なWordPressサイトでは、REST API全体を止める必要はありません。セキュリティ上の理由で制限したい場合は、特定エンドポイント、匿名アクセス、ユーザー情報など、実際に問題となる範囲を確認して制御します。
REST APIのセキュリティで確認すること
初心者が確認するポイント
- WordPress本体・テーマ・プラグインを更新する
- HTTPSを利用する
- 外部連携には必要最低限の権限を持つユーザーを使う
- Application Passwordsをアプリごとに分ける
- 不要になったApplication Passwordsは無効化する
- プラグインが独自APIを追加している場合は権限設定を確認する
- 「REST API全体を停止すれば安全」と単純化しない
独自APIではpermission_callbackが重要
開発者が独自エンドポイントを追加する場合は、誰がその処理を実行できるかを適切に確認する必要があります。認証済みだから何でも許可するのではなく、ユーザー権限まで確認します。
REST APIでエラーが出る主な原因
WordPressのサイトヘルスなどでREST API関連のエラーが表示される場合、原因はREST API本体とは限りません。
| 原因候補 | 確認内容 |
|---|---|
| セキュリティプラグイン | REST APIを制限していないか |
| WAF | API通信が遮断されていないか |
| Basic認証 | 外部アクセスを妨げていないか |
| パーマリンク | URL設定やリライトルールが正常か |
| サーバー設定 | 403・404・500系エラーが出ていないか |
| プラグイン | 独自エンドポイントでエラーが出ていないか |
初心者がREST APIを直接使う必要はある?
通常運営ならAPIを自分で操作する必要はほぼありません。標準機能を壊さないことが重要です。
外部システム連携がなければ、仕組みを理解する程度で十分です。
認証・権限・エンドポイント設計まで理解する必要があります。
記事取得や更新の主要な接続手段としてREST APIを利用できます。
注意点
/wp-json/が表示されるだけで脆弱性と判断しない- 公開記事がAPIから取得できることと、非公開情報が漏れていることを混同しない
- REST API全体を無効化するとWordPress管理機能へ影響する場合がある
- 外部アプリへWordPress本体のログインパスワードを安易に渡さない
- Application PasswordsはHTTPSで利用し、不要になったものを失効させる
- 独自エンドポイントは認証だけでなく権限確認も行う
- エラー時はWAF・プラグイン・サーバー設定まで切り分ける
教科書判定
一般利用者は「REST APIはWordPressの標準機能なので、理由なく止めない」と覚える
WordPress初心者は、REST APIのプログラムを書ける必要はありません。まずはWordPressと外部アプリ・管理画面がHTTPとJSONでデータをやり取りする標準の窓口だと理解してください。
通常のブログや会社サイトでは、REST API全体を無効化するより、WordPress・プラグインを最新状態に保ち、必要な認証・権限管理を行う方が重要です。外部連携やヘッドレス構成を使う場合は、Application Passwordsやユーザー権限まで理解して運用します。
よくある質問
Q./wp-json/が外部から見えるのは危険ですか?
それだけで危険とは言えません。WordPress REST APIの標準入口です。公開情報は匿名で取得できる場合がありますが、非公開情報や変更操作には認証・権限確認が必要です。
Q.REST APIを使わないなら無効化してよいですか?
基本的にはおすすめしません。WordPress管理機能やプラグインがREST APIへ依存している場合があり、全体を停止すると正常に動かなくなる可能性があります。
Q.REST APIとXML-RPCは同じですか?
違います。どちらも外部連携に使えますが、REST APIは主にHTTPメソッドとJSONを利用し、XML-RPCはXML形式の別方式です。WordPress内での位置づけや用途も異なります。
Q.REST APIを使えば外部から記事を投稿できますか?
できます。ただし投稿作成には認証と適切なユーザー権限が必要です。外部アプリではApplication Passwordsなどを利用できます。
Q.REST APIのエラーが出たらWordPress本体の故障ですか?
限りません。WAF、セキュリティプラグイン、Basic認証、パーマリンク、サーバー設定、独自プラグインなどが原因になる場合があります。エラーコードを確認して切り分けます。
まとめ
WordPress REST APIの要点
- REST APIはWordPressデータをHTTP経由でやり取りする仕組み
- 基本入口は通常
/wp-json/ - 投稿・固定ページ・メディア・カテゴリーなどを扱える
- データは主にJSON形式でやり取りする
- GET・POST・PUT・DELETEなどのHTTPメソッドを使う
- 公開情報は匿名取得できる場合があるが、変更操作には認証・権限が必要
- 外部アプリ・ヘッドレスWordPress・管理画面・プラグイン連携などで利用される
- 外部認証にはApplication Passwordsを利用できる
- REST API全体を理由なく無効化しない
「WordPressのXML-RPCとは?無効化すべきか解説」「WordPressのサイトヘルスとは?確認項目と見方を解説」もあわせて確認してください。