初心者向けWordPress REST API:どこからでもコンテンツにアクセス
John Turner
John Turner
REST APIはWordPressを従来のコンテンツ管理システム以上のものに変えます。アプリケーションフレームワークになるのです。
他のプログラム(モバイルアプリ、カスタムウェブサイト、サードパーティサービスなど)は、WordPressサイトと通信し、データをリクエストし、コンテンツを修正することさえできます。
これは純粋に開発者の領域だと思うかもしれません。しかし、そうではありません。
REST APIは、おそらく毎日使用している機能を強化します。ブロックエディター?あれはREST APIが機能している証拠です。ブロックを追加したり、投稿の下書きを保存したりするたびに、舞台裏でAPI呼び出しが行われています。
この記事では、WordPress REST APIとは何か、実際に何をするのか、そしてサイトでそれをどのように管理するかを解説します。
主なポイントは次のとおりです:
- WordPress REST APIはWordPressコアに組み込まれており、外部アプリケーションがシンプルなURLを通じてコンテンツを読み取ったり変更したりできるようにします。
- あなたはすでにそれを使用しています。ブロックエディターは、追加するすべてのブロックと保存するすべての下書きでREST APIに依存しています。
- これにより、ヘッドレスWordPress、モバイルアプリ、シングルページアプリケーションが可能になります。コンテンツをJSONデータとして提供し、あらゆるプラットフォームが利用できるようになります。
- 公開エンドポイント(例:/wp-json/wp/v2/posts)はすぐに機能しますが、コンテンツの作成または編集には、アプリケーションパスワードを介した認証が必要です。
- ほとんどのREST APIの問題(404エラー、認証失敗)は、パーマリンクを再保存するか、アプリケーションパスワードの設定を確認することで修正できます。
目次
- WordPress REST APIとは何ですか?
- アプリケーションプログラミングインターフェース(API)とは何ですか?
- What is Representational State Transfer (REST)?
- WordPress REST APIは何をしますか?
- 一般的なREST APIコマンド
- WordPress REST APIへのアクセス方法
- How to Use WordPress REST API: Common Use Cases
- REST APIを使用しない場合
- WordPress REST APIを無効にする方法
- How to Fix Common REST API Issues
- Frequently Asked Questions (FAQs)
WordPress REST APIとは何ですか?
WordPress REST APIは、他のシステムがWordPressデータとやり取りできるようにする組み込みインターフェースです。WordPressサイトと外部世界との間のブリッジと考えてください。
WordPressコアに同梱されています。追加のものをインストールする必要はありません。すでにそこにあり、使用されるのを待っています。
APIはデータ形式としてJSON(JavaScript Object Notation)を使用します。JSONは、データをテキストとして構造化するための軽量な方法です。人間が読めるので、実際に見ても何を見ているのか理解できます。
JSON形式のブログ記事は、タイトル、コンテンツ、著者、公開日などのプロパティの整然としたリストのようになります。
これが重要な理由:REST APIは「デカップリング」を可能にします。WordPressでコンテンツを管理し、そのコンテンツをどこにでも表示できます。モバイルアプリで。別のウェブサイトで。デジタルキオスクで。チームがゼロから構築したカスタムアプリケーションで。
コンテンツは1か所に保存されます。しかし、どこにでも表示できます。
アプリケーションプログラミングインターフェース(API)とは何ですか?
APIは、実際に機能するので、レストランのアナロジーで説明するのが好きです。
テーブルに座っています。食べ物が欲しいです。しかし、キッチンに歩いて行って冷蔵庫から物を取り出すことはできません。仲介者が必要です。それがウェイターです。
ウェイターに注文(リクエスト)を伝えます。ウェイターはそれをキッチン(サーバー/データベース)に運びます。キッチンが食べ物を準備します。ウェイターがそれをあなたに届けます(レスポンス)。
APIはウェイターのようなものです。APIは、データを欲しているアプリケーションと、そのデータを持っているシステムとの間の仲介者です。APIはリクエストを受け取り、適切なシステムと通信し、リクエストしたアプリケーションが理解できる形式で結果を届けます。
APIがなければ、アプリケーションはデータベースに直接アクセスする必要があるでしょう。それは煩雑で、安全ではなく、大規模な管理はほぼ不可能になります。
Representational State Transfer (REST)とは何ですか?
RESTはAPIを構築するためのアーキテクチャールールセットです。APIがこれらのルールに従うとき、私たちはそれを「RESTful」と呼びます。WordPress REST APIはこの原則に従っているため、名前に「REST」が含まれています。
コアコンセプトは次のとおりです。
ステートレス
サーバーは以前のリクエストを記憶しません。行うすべてリクエストには、サーバーが処理するために必要なすべてを含める必要があります。サーバーが5秒前のリクエストを覚えていると仮定することはできません。
これは制限があるように聞こえるかもしれませんが、実際にはREST APIをスケーラブルにする要因です。サーバーは、数千もの同時リクエストのセッション状態を追跡するためにリソースを浪費していません。
クライアント・サーバー
クライアント(リクエストを行うアプリ)とサーバー(WordPressサイト)は完全に分離されています。それらは独立して開発できます。APIエンドポイントが一貫している限り、ReactアプリはWordPressがバージョン6.5または7.0にアップデートされたかどうかを気にしません。
均一なインターフェース
REST APIは、GET、POST、PUT、DELETEなどの標準HTTPメソッドを使用します。この標準化により、APIは予測可能になります。RESTに慣れている開発者は、WordPress APIが既に知っている規約に従っているため、すぐに習得できます。
これらの原則は単なる学術的なものではありません。これらはWordPress REST APIを信頼性が高く、予測可能で、扱いやすいものにしています。
WordPress REST APIは何をしますか?
REST APIは、「エンドポイント」と呼ばれるURLを通じてWordPressデータを公開します。エンドポイントは、特定のデータをリクエストできる特定の住所です。
たとえば、/wp-json/wp/v2/postsはブログ投稿のエンドポイントです。サイトでそのURLにアクセスすると、投稿のタイトル、コンテンツ、著者、アイキャッチ画像など、すべてを含むJSONレスポンスが得られます。
これはブロックエディターを支えるテクノロジーです。Gutenbergを使用しているとき、あなたが取るすべての操作はAPI呼び出しをトリガーします。
段落ブロックを追加しますか?API呼び出し。画像をアップロードしますか?API呼び出し。下書きを保存しますか?API呼び出し。エディターインターフェースは、基本的にREST APIを通じてWordPressサイトと通信するJavaScriptアプリケーションです。
APIは、プログラムによるCRUD操作(作成、読み取り、更新、削除)を可能にします。WordPressダッシュボードを開くことなく、これらのすべての操作をコンテンツに対して実行できます。
開発者として、5秒で100件の投稿を作成するスクリプトを書くことができます。または、過去1ヶ月のすべての投稿を取得してレポートを生成することもできます。または、「outdated」とタグ付けされたすべての投稿に注意喚起バナーを付けて更新することもできます。
WordPressが単なるウェブサイトではなくなったとき、可能性は劇的に広がります。それは、たまたまウェブサイトもレンダリングするコンテンツAPIなのです。
一般的なREST APIコマンド
REST APIは、さまざまなアクションを実行するために標準HTTPメソッドを使用します。それぞれの機能は次のとおりです。
| HTTPメソッド | アクション | 例 |
| 取得 | サーバーからデータを取得 | 公開済みの投稿リストを取得 |
| 投稿 | 新規データを作成 | 新しいブログ投稿またはページを追加 |
| 更新 / パッチ | 既存データを更新 | 既存の投稿のタイトルを編集 |
| 削除 | データを削除 | コメントまたはメディアファイルを削除 |
GETリクエストは読み取り専用です。データを変更しないため、誰でも実行できます。ブラウザで公開エンドポイントにアクセスすると、GETリクエストが実行されます。
他のメソッドはデータを変更します。認証が必要です。WordPressは、コンテンツの作成、更新、または削除の権限があることを確認してから、これらのリクエストを処理する必要があります。
WordPress REST APIへのアクセス方法
REST APIは、バージョン4.7以降を実行しているすべてのWordPressサイトでデフォルトで有効になっています。ベースパスは /wp-json/ です。
今すぐテストできます。
新しいブラウザタブを開き、yourdomain.com/wp-json/ にアクセスしてください。利用可能なすべてのAPIルートを一覧表示するJSONレスポンスが表示されます。見た目は良くありませんが、APIが機能していることを確認できます。
投稿を確認したいですか? yourdomain.com/wp-json/wp/v2/posts を試してください。公開済みの投稿のJSON配列が、すべてのメタデータとともに表示されます。
これらの公開エンドポイントは、サイト上で既に公開されているデータのみを表示します。しかし、投稿の作成、ページの更新、コメントの削除など、データを変更するアクションについてはどうでしょうか?
それらには認証が必要です。
WordPressは2つの主要な認証方法をサポートしています。Cookie認証は、同じドメインのリクエスト(ブロックエディターなど)で機能します。
外部アプリケーションの場合は、アプリケーションパスワードを使用します。これらはWordPressで生成する24文字のトークンで、APIアクセス専用に設計されています。実際のパスワードを変更せずに個別に失効させることができるため、実際のパスワードよりも安全です。
生成するには、ユーザー » プロフィールに移動します。アプリケーションパスワードの設定を見つけて、新しいものを生成してください。

次に、これでREST APIにアクセスします:
https://mysite.com/wp-json/wp/v2/posts?Authorization=Bearer[Password]
[Password] をアプリケーションパスワードに置き換え、スペースを削除してください。
または、JWT Authentication for WP REST API のようなプラグインを使用することもできます。
アプリケーションパスワードは推奨される方法です。安全で、追跡可能で、実際のパスワードをサードパーティアプリケーションに公開しません。
接続をテストするには、コマンドラインで次のコマンドを使用します:
curl -X GET --user username:password -i http://yoursite.com/wp-json/wp/v2/posts?status=draft
WordPress REST APIの使用方法:一般的なユースケース
REST APIとは何か、どのように機能するかを理解したところで、実際に使用するのに適したシナリオを見てみましょう。
ヘッドレスWordPress
これは、WordPressを純粋にコンテンツ管理バックエンドとして使用する場合です。訪問者はWordPressテーマを見ることはありません。代わりに、React、Vue、Next.jsなどのJavaScriptフレームワークを使用してカスタムフロントエンドを構築します。
そのフロントエンドはWordPress REST APIからコンテンツを取得し、好きなようにレンダリングします。WordPressの優れたコンテンツ管理ツールと、フロントエンドでの完全なデザインの自由度を組み合わせることができます。
モバイルアプリ
WordPressサイトのコンテンツ全体でネイティブのiOSまたはAndroidアプリを完全に強化できます。アプリはAPIリクエストを行って投稿を取得し、画像を表示し、コメントを表示します。
コンテンツチームは、すでに使い慣れているWordPressダッシュボードからすべてを管理します。アプリ開発者はCMSに触れることはありません。
シングルページアプリケーション(SPA)
これらは、一度ロードされてから、ページ全体をリロードせずに動的に新しいコンテンツを取得するWebアプリケーションです。ユーザーエクスペリエンスは、より高速でアプリのようなものになります。
Gmailはこのように機能します。メール間をクリックしても、ページはリロードされません。JavaScriptがAPI経由でメールコンテンツを取得します。WordPressコンテンツで同じエクスペリエンスを構築できます。
データ同期
WordPressから別のプラットフォームにデータをプルするか、外部サービスからWordPressにデータをプッシュします。
これは、WordPressと在庫管理システム間で製品情報を同期するために使用されているのを見たことがあります。または、CRMで収集されたデータからWordPress投稿を自動的に作成するためにも使用されています。
REST APIにより、複雑なデータベース操作なしでこれらの統合が可能になります。
REST APIを使用しない場合
通常のブログやビジネスWebサイトを実行している場合、REST APIを直接操作する必要はないでしょう。従来のWordPressテーマがすべてを完全に処理します。
初期ページ読み込み速度が最優先事項である場合、サーバーレンダリングテーマの方が高速になることがよくあります。
ヘッドレスセットアップでは、コンテンツを取得してレンダリングするためにJavaScriptが必要であり、レイテンシが発生します。読み込み時間のミリ秒単位がすべて重要なコンテンツ中心のサイトでは、従来のWordPressアーキテクチャの方が適している場合があります。
信頼性が高く、サポートの行き届いたプラグインがすでに統合の問題を解決している場合は、そのプラグインを使用してください。できるからといって、カスタムREST APIソリューションを構築しないでください。
プラグインは維持、テスト、更新されます。カスタム統合は、管理する必要のある技術的負債です。
REST APIは強力です。しかし、目的のない力は不要な複雑さを生み出します。
WordPress REST APIを無効にする方法
警告から始めます。REST APIを完全に無効にすると、ブロックエディターが壊れます。いくつかのプラグインも壊れる可能性があります。完全に無効にしてから、Gutenbergが機能しなくなった理由を不思議に思う場合は、これがその理由です。
より良いアプローチは、無効化ではなく制限です。すべてのAPIエンドポイントに認証を要求できます。これにより、ログインユーザーに対してブロックエディターが機能し続けると同時に、パブリックエンドポイントへの匿名アクセスをブロックします。
REST APIを無効にしたい場合は、WPCodeのようなプラグインを使用することをお勧めします。このタスクを処理するコードスニペットが組み込まれています。

コードスニペットを選択し、サイトに自動挿入します。スニペットをアクティブ化して更新して変更を保存します。

一般的なREST APIの問題の修正方法
REST APIが有効になっていて機能していても、時折問題が発生します。ここでは、私が遭遇した最も一般的な問題とその解決方法を紹介します。
404 見つかりません
これは私が最もよく見るエラーです。APIエンドポイントにアクセスしようとすると、WordPressはページが存在しないかのように404を返します。
10回中9回は、パーマリンクの問題です。WordPressは、APIリクエストを正しくルーティングするために.htaccessルール(Apacheサーバーの場合)を使用します。これらのルールが破損したり、移行やサーバー変更後に正しく再生成されなかったりすることがあります。
WordPressダッシュボードで設定 » パーマリンク設定に移動します。何も変更しないでください。ただ変更を保存をクリックするだけです。WordPressはリライトルールを再生成し、APIが再び機能するようになります。

401または403認証エラー
401は「認証されていない」を意味し、認証情報を提供しなかったことを示します。403は「禁止」を意味し、認証情報を提供しましたが、そのアクションを実行する権限がありません。
アプリケーションパスワードが正しく入力されているか(スペースなし、正しいユーザー名)確認してください。ユーザーアカウントが実行しようとしていることに対して適切な権限を持っていることを確認してください。
プラグインまたはテーマの競合
不適切にコーディングされたプラグインやテーマがREST APIの機能に干渉することがあります。標準のWordPressトラブルシューティングプロセスを使用してください。すべてのプラグインを無効にし、デフォルトのテーマ(Twenty Twenty-Fourなど)に切り替え、APIをテストしてください。
機能する場合は、プラグインを1つずつ再アクティブ化して、原因を特定してください。次に、そのプラグインの開発者に連絡するか、代替手段を見つけてください。
CORSエラー
これは、あるドメインのWebアプリケーションが別のドメインのAPIにアクセスしようとしたときに、ブラウザのコンソールに表示されます。CORS(Cross-Origin Resource Sharing)はブラウザのセキュリティ機能です。デフォルトではこれらのリクエストをブロックします。
修正するには、WordPressサーバーに特定のHTTPヘッダーを追加して、アプリケーションのドメインからのリクエストを明示的に許可する必要があります。これには通常、.htaccessファイルを編集するか、ホスティングコントロールパネルでヘッダーを設定することが含まれます。
CORSエラーが表示されている場合は、ヘッドレスまたはデカップルセットアップで作業しており、解決するにはサーバーレベルのアクセスが必要になります。
よくある質問(FAQ)
WordPress APIは安全ですか?
はい、コアWordPress APIは設計上安全です。WordPressのユーザーロールと権限システムを尊重しており、公開エンドポイントはサイト上で既に公開されているデータのみを公開します。
WordPressにAPIを統合できますか?
はい、2つの方法があります。他のアプリケーションがWordPressサイトのREST APIに接続してコンテンツを読み取ったり変更したりできます。または、WordPressを使用して、天気サービスや決済処理業者などのサードパーティAPIに接続できます。
WordPress REST APIを保護するにはどうすればよいですか?
認証にはアプリケーションパスワードを使用し、サイト全体でHTTPSを強制し、WordPressコア、テーマ、プラグインを最新の状態に保ちます。悪意のあるリクエストをフィルタリングするためにWebアプリケーションファイアウォール(WAF)の追加を検討してください。
WordPressのREST APIの機能は何ですか?
APIは、投稿、ページ、ユーザー、分類法、メディア、コメント、設定にプログラムでアクセスできます。WooCommerceのようなプラグインは、追加機能のために独自のカスタムエンドポイントを追加できます。
未来はつながっている
WordPress REST APIは、WordPressを従来のコンテンツ管理システムから真のアプリケーションフレームワークへと変革します。もはやウェブサイトを構築するだけではなく、必要な場所ならどこでもコンテンツを利用できるようにすることです。
このAPIは架け橋です。WordPressを最新のウェブアプリケーション、モバイルアプリ、サードパーティサービスに接続します。その仕組みを理解することは、サイトのアーキテクチャに関するより良い意思決定を行い、問題をより迅速にトラブルシューティングし、開発者とより効果的にコミュニケーションをとるのに役立ちます。
WordPressサイトのデータは、訪問者が見るページから、REST APIが他のアプリケーションに提供するコンテンツまで、すべてを支えるエンジンです。そのデータを保護することは譲れません。
Duplicator Proは、WordPressのインストール全体を確実にバックアップする方法を提供します。ヘッドレスセットアップを試したり、新しいアプリを接続したりする前に、完全なバックアップを実行してください。Duplicator Proを使用すると、自動バックアップをスケジュールでき、貴重なコンテンツが安全であることを知って安心できます。
せっかくなので、これらの厳選されたWordPressリソースも気に入ると思います: