WordPress REST APIとは?できること・仕組み・用途を解説

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が処理結果を返します。

1.アプリやブラウザがAPIへアクセス
2.WordPressがURLとHTTPメソッドを確認
3.必要に応じて認証・権限を確認
4.投稿やメディアなどのデータを処理
5.JSON形式などで結果を返す
外部アプリや管理画面が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は記事管理を担当し、表示部分を別のシステムが担当します。

WordPress
記事・画像・カテゴリーを管理
REST API
データを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系エラーが出ていないか
プラグイン 独自エンドポイントでエラーが出ていないか
STEP 1.サイトヘルスのエラー内容を確認
STEP 2./wp-json/へアクセスできるか確認
STEP 3.HTTPステータスコードを確認
STEP 4.WAF・セキュリティ設定を確認
STEP 5.プラグイン・テーマ・サーバーを切り分ける
原因を確認してから設定を変更する

初心者がREST APIを直接使う必要はある?

個人ブログ 直接利用 ★☆☆☆☆

通常運営ならAPIを自分で操作する必要はほぼありません。標準機能を壊さないことが重要です。

会社サイト 直接利用 ★★☆☆☆

外部システム連携がなければ、仕組みを理解する程度で十分です。

外部アプリ連携 直接利用 ★★★★★

認証・権限・エンドポイント設計まで理解する必要があります。

ヘッドレスWordPress 直接利用 ★★★★★

記事取得や更新の主要な接続手段として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のサイトヘルスとは?確認項目と見方を解説」もあわせて確認してください。