データを取得するための WP REST API
このシリーズの前の部分では、WP REST API とは何か、そしてそれが WordPress バックエンドを使用してより良いアプリケーションを構築するのにどのように役立つのかを見てきました。
次に、認証済みリクエストを生成するためにサーバー上で認証を設定する 2 つの異なる方法を検討しました。 1 つ目は Basic 認証方法です。これは開発環境で役立ち、セットアップに時間がかからないため、迅速なプロトタイピングが可能になります。高度な認証方法は OAuth 2.0 です。基本認証方法よりもはるかに安全であるため、運用環境に推奨されます。
認証の設定方法を理解したので、WP REST API の機能を最大限に活用するための認証済みリクエストを生成する準備が整いました。このシリーズでは使いやすさのため基本認証を使用しますが、運用サーバーには OAuth 2.0 認証 (WordPress REST API 認証プラグインによって提供される) を使用することをお勧めします。
WordPress REST API 認証プラグインは、API エンドポイントへのアクセスを制御する認証メカニズムを追加することで、WordPress REST API のセキュリティを強化します。いくつかの認証方法が付属しています:
- 基本認証
- API キー認証
- JWT認証
- OAuth 2.0 認証
認証を設定した後、さまざまな API エンドポイントのアクセス制御ルールを定義できます。これにより、どのユーザーまたはロールが特定のエンドポイントにアクセスできるかを構成できます。また、ユーザーの役割、機能、または特定のユーザー ID に基づいてアクセスを制限するオプションも提供します。
シリーズの今回の記事では、WP REST API を初めて実際に見ていきます。私達はします:###
- 分析
- GET
リクエスト構造
表示 - オプション
セルフロギング API をリクエストする方法
データを取得するためにサーバーにリクエストを送信します - 属性、スキーマ、リンクを含むサーバー応答を分析する
- GET リクエストの分析
- OPTIONS リクエストを使用した API の操作
- 投稿の処理
- 投稿のリビジョン、カテゴリ、タグの使用
- 他のリソースを使用する
したがって、最初に単純な GET
リクエストの構造を分析します。
GET
リクエスト分析
WP REST API を使用してデータを取得する方法を詳しく説明する前に、サーバーに送信されるリクエストの構文を理解しておく必要があります。これにより、将来の WP REST API とのやり取りに強固な基盤が提供されます。
サーバーに送信された次のリクエストについて考えてみましょう:
リーリー送信するリクエストのタイプは GET
です。これは、このシリーズのパート 1 で説明した 6 つの HTTP 動詞の 1 つです。 GET
リクエストはサーバーからデータを取得するために使用されます。したがって、サーバー上で実行されると、上記のリクエストはすべての投稿オブジェクトのコレクションを JSON データとして取得します。
リクエスト URI を考慮すると、次の部分に分割できます:
-
https://localserver/
: ローカル開発サーバーの URL。 WordPress がインストールされている場所に応じて、任意の URL を指定できます。 -
/wp-json
: WP REST API のエンドポイント プレフィックス。 -
/wp
: WP REST API の名前空間。 -
/v2
: WP REST API のバージョン。 -
/posts
: これはサーバーから取得したいリソースです。
名前空間は、複数のプラグインを実行するときに発生する可能性のあるオーバーライドを防ぎ、それぞれが RESTful API に独自の抽象化レイヤーを提供します。したがって、各抽象化は独自の境界内で動作し、他の抽象化に属するメソッドやプロパティには影響しません。
上記の URI を使用してリソース (投稿) のコレクションを取得することに加えて、ID を指定して特定のリソースを取得することもできます:
リーリー上記のリクエストは、ID 100 の投稿リソースを検索するため、投稿オブジェクトを返します。
通常、特定の条件を満たす投稿を検索する必要もあります。たとえば、次のコード スニペットに示すように、カテゴリ別に投稿をフィルタリングできます。
リーリー 上記のリクエストを送信すると、ID 20 と 30 のカテゴリに属するすべての投稿を取得できます。ご覧のとおり、categories
パラメータに 1 つ以上のカテゴリ ID を渡すと、カテゴリ分類内の特定の用語が割り当てられた投稿が返されます。
上記の構文は、次の WP_Query()
呼び出しと同等です:
したがって、上記の GET
リクエストは、ID 20 と 30 の 2 つのカテゴリに属する投稿のリストを取得します。同じ構文は、3 つ以上の要素を持つ配列パラメーターにも使用できます。
GET
リクエストをフォーマットしてパラメータを指定する方法を確認したので、今度は OPTIONS
リクエストを見てみましょう。 オプション
リクエストを使用すると、API の操作が簡単になり、エンドポイントで使用可能なすべての HTTP メソッドとそれらがサポートするパラメータをログに記録することで、API をよりアクセスしやすくするための自己文書化された方法として実際に機能します。
OPTIONS
リクエストを使用した API の操作
前述したように、OPTIONS
リクエストは API を探索するのに非常に役立ちます。ルートに属するすべてのエンドポイントについて説明し、これらのエンドポイントで CRUD 操作がサポートされるパラメーターのリストを提供します。
OPTIONS
リクエストを /wp/v2/posts
ルートに送信して、サポートされているエンドポイントと、GET
に沿ってクエリできるデータを確認してみましょう。リクエスト: ###
リーリー
リーリー
上記のOPTIONS リクエスト
/wp/v2/posts ルートは、次の 5 つの属性を含む JSON 形式のデータを返します。
- 名前空間
######方法###### ######終点######
スキーマ-
- #
リーリー
namespace
属性は、現在のプラグインの名前空間を識別します。この場合、これは - wp/v2
で、WP REST API のバージョン 2 を表します。名前空間とそのサービスの目的については、前のセクションですでに学びました。
{ ... "methods": [ "GET", "POST" ], ... }
ログイン後にコピーmethods
属性包含当前路由支持的所有方法的数组。通过查看上述请求返回的响应,可以清楚地看到/wp/v2/posts
路由支持两种方法,即GET
和POST
。这意味着我们可以使用/wp/v2/posts
路由来检索帖子,以及创建新帖子。我们将在本系列的下一部分中处理POST
方法,因此我们暂时只关注GET
方法。下一个属性 —
endpoints
— 包含当前路由支持的端点数组。此属性直接链接到前面提到的methods
属性,因为它列出了支持的方法的端点。{ ... "endpoints": [ { "methods": [ "GET" ], "args": {...}, "allow_batch": {"v1":true} }, { "methods": [ "POST" ], "args": {...}, "allow_batch": {"v1":true} } ], ... }
ログイン後にコピーendpoints
属性包含对象值,而对象值又包含三个属性,即methods
、args
和allow_batch
。methods
属性包含 HTTP 方法的数组,下一个args
属性包含这些方法支持的所有参数。最后,allow_batch
属性用于了解端点是否支持批量请求功能。这些是我们以 URI 参数的形式随请求发送的参数。查看
GET
方法支持的参数,我们发现了 20 多个参数,包括context
、page
、required
、type
、default
。required
属性指示该参数是否为必需,而default
属性表示该参数的默认值。另一方面,type
属性指示应传递的值的类型。除此之外,它还可能包含其他特定于参数的属性。"methods": [ "GET" ], "args": { "context": { "required": false, "default": "view", "type": "string", "description": "Scope under which the request is made; determines fields present in response." }, "page": { "required": false, "default": 1, "type": "integer", "description": "Current page of the collection.", "minimum": "1" }, "per_page": { "required": false, "default": 1, "type": "integer", "description": "Maximum number of items to be returned in result set.", "minimum": "1", "maximum": "100" }, }
ログイン後にコピー返回的响应中的
schema
属性记录了当前资源的所有属性。该架构定义了 JSON 格式的数据结构。 WP REST API 中使用的架构格式基于 JSON 架构规范草案 4。最后一个
_links
属性包含一个对象数组,其中包含关联资源的链接。对象中的键指定关系类型(例如author
、collection
、self
、comments
等) ,其值是指向相关资源的链接。该链接标准基于 HAL(超文本应用语言)。您可以通过阅读 Mike Kelley 撰写的规范来了解有关 HAL 的更多信息。以类似的方式,我们也可以向其他路由(包括用户、评论、媒体、页面等)发送
OPTIONS
请求,以检查其支持的方法和参数。OPTIONS
请求是您使用 WP REST API 时最好的朋友。WP REST API 提供了另一种评估 API 可用性的方法,即向
/wp-json
索引路由发送GET
请求。这将列出所有路由及其端点及其支持的方法和参数。$curl -X GET http://wordpress-server/wp-json
ログイン後にコピー上述请求将返回一个包含路由属性的响应对象,如下所示:
此功能非常强大,因为它列出了所有路由及其支持的方法和参数,因此无需在外部记录所有这些内容。当我们对不同的资源执行CRUD操作时,我们将引用这个响应对象。
查看了探索 API 的选项后,现在让我们开始使用 WP REST API 从服务器检索数据。
处理帖子
到目前为止,我们已经熟悉了
OPTIONS
请求,这是一种评估 API 可用性的自记录方式。我们还研究了它如何显示给定路由支持的方法和参数。利用这些知识,我们现在准备使用 WP REST API 从服务器检索不同的资源。我们将从
<em>posts</em>
资源开始,因为它是 WordPress 的主要构建块。我们将使用不同的标准来检索帖子。通过应用这些知识,您将能够使用 WP REST API 查询帖子,就像使用 WP_Query 类一样。在本系列中,我们一直在使用
<em>posts</em>
资源来演示示例请求及其响应,并且我们已经知道如何通过 ID 检索帖子集合和单个帖子。所以我们不会再讨论这个了。相反,我们将研究一些使用顶级参数检索帖子的更高级方法。使用顶级参数
WP REST API 直接在
GET
端点上公开一些最常用的帖子查询变量。这些参数是:パラメータ ###意味###view ページごとの投稿の合計数。デフォルトは、embed view、または
edit です。デフォルトはです。 #########1ページあたり##################ページ#########
投稿コレクションの現在のページ。デフォルトは1
です。10 です。 #########後######### このパラメータで指定された日付以降に公開された投稿のみを返します。
#修正後 #このパラメータで指定された日付以降に変更された投稿のみを返します。
#########著者######### 著者ID。特定の作成者に属する結果を制限するために使用されます。
############前に######author_exclude 結果セットには、特定の作成者に割り当てられた投稿は含まれません。このパラメータで指定された日付より前に公開された投稿のみを返します。 #このパラメータで指定された日付より前に変更された投稿のみを返します。 検索結果から除外する投稿 ID の配列。 #########含む#########
結果をこの配列で指定された投稿 ID に制限します。#########オフセット######### 検索結果を指定された数値だけオフセットします。#########注文######### コレクションの順序。 を指定できます。asc
または desc date注文方法 コレクションの並べ替えプロパティ。可能な値は、author 、、 、id、 、include
、modifiedparent# です。 ##、 relevanceslug 、include_slugs 、および
title。検索列 検索する列名の配列を指定できます。
特定のステータスを持つ投稿のコレクションを制限するために使用されます。ナメクジ 結果を特定のスラッグを含む投稿に限定します。
税金関係
#########カテゴリー#########カテゴリ除外
#########ラベル#########
結果セットをタグ分類で指定された用語でフィルタリングします。tags_exclude
は、結果セットをスティッキー項目に制限するために使用されます。
context
参数用于根据我们正在工作的范围获取帖子。如果我们只是在索引页面上列出帖子,那么我们可以使用view
上下文。但是,如果我们要检索帖子以进行编辑,则需要使用edit
上下文:$GET /wp/v2/posts?context=edit
ログイン後にコピーedit
上下文参数在title
、content
和raw
字段="inline">摘录。这个raw
字段的值可以在编辑器中回显出来,用于编辑内容。使用
edit
上下文需要您作为具有edit_posts
权限的用户进行身份验证。使用
embed
作为context
参数的值可获取帖子的集合及其属性的最小子集。上面提到的其他参数非常不言自明,您可以在 HTTP 客户端中使用它们。
这些是允许您根据特定条件查询帖子的基本参数。
如何使用其他条件过滤记录
除了使用一些基本的顶级参数检索帖子集合之外,WP REST API 还允许您按各种其他条件过滤记录。通过使用此语法,我们可以像使用
WP_Query()
类一样查询帖子。分页参数是所有过滤器中最重要的,因为它们在帖子列表页面上广泛使用。分页参数允许我们在每页显示特定数量的帖子,并导航到包含帖子的特定数量的页面。
默认情况下,
GET
请求会检索每页 10 个帖子的集合。让我们看看如何提交GET
请求来检索每页仅五个帖子:$GET /wp/v2/posts?per_page=5
ログイン後にコピー上述请求使用
per_page
变量,如果您使用过WP_Query()
,您可能会熟悉该变量。page
参数与per_page
参数结合使用,用于导航到特定数量的页面。每页检索到五个帖子后,我们将发出以下请求以导航到第二页:$GET /wp/v2/posts?per_page=5&page=2
ログイン後にコピー在使用 WP REST API 在列表页面上构建分页时,
per_page
和page
过滤器非常方便。除了上述请求返回的帖子集合之外,服务器还返回许多标头以及包含有用信息的响应,包括帖子总数和页数。这些值包含在
X-WP-TotalPages
和X-WP-Total
响应标头中。使用 WP REST API 创建分页时,
X-WP-TotalPages
和X-WP-Total
响应标头非常有用,因为它们列出了页面总数以及帖子总数。除了分页过滤器之外,您还可以按日期过滤帖子。
因此,如果我们要查找日期为 2015-10-15(yyyy/mm/dd)发布的帖子,可以通过以下查询来实现:
$ GET /wp/v2/posts?modified_after=2015-10-14&modified_before=2015-10-16
ログイン後にコピー我们已经在本教程的上一节中了解了如何使用
categories
参数获取属于特定类别或多个类别的帖子。让我们看看如何显示属于 id 为 5 和 6 的类别的帖子:$ GET /wp/v2/posts?categories=5,6
ログイン後にコピー上述请求将检索属于 ID 为 5 和 6 的类别的所有帖子的列表。
通过以下方式使用
categories_exclude
参数可以达到相反的效果:$ GET /wp/v2/posts?categories_exclude=5,6
ログイン後にコピー这将检索帖子列表,同时排除属于 ID 为 5 或 6 的类别的所有帖子。
现在我们已经在 WP REST API 的帮助下查看了查询帖子时的不同选项,我们准备进一步推进我们的旅程并查看 WP REST API 支持的一些其他资源。
使用帖子修订、类别和标签
帖子修订提供了一种查看和恢复对帖子所做编辑的方法。 WP REST API 提供了一种通过查询
/posts/<id>/revisions
端点来查看帖子的所有修订版本的方法。因此,对于 ID 为 10 的给定帖子,可以通过发送以下请求来检索所有修订:$ GET /wp/v2/posts/10/revisions
ログイン後にコピー上述请求将返回一个包含修订对象的数组。修订对象包含在发布对象中找到的属性的子集。下面是 Postman 中的修订对象示例:
只要我们知道其 ID,就可以检索特定的修订版本。因此,可以通过以下对象检索 ID 为 10 的帖子上 ID 为 2 的修订:
$ GET /wp/v2/posts/10/revisions/2
ログイン後にコピー上述请求将返回单个修订对象。
除了帖子修订之外,还可以通过以下请求检索特定帖子的类别:
$ GET /wp/v2/categories?post=<post_id>
ログイン後にコピー对于标签,我们使用以下请求,其中
<post_id>
是帖子的 ID:$ GET /wp/v2/tags?post=<post_id>
ログイン後にコピー如果我们需要检索 ID 为 10 的帖子的帖子元数据,我们将以经过身份验证的用户身份发送以下请求:
$ GET /wp/v2/posts/10/meta
ログイン後にコピー这将返回一个元对象数组。
请注意,要在 WP REST API 中使用帖子和页面元,您需要安装配套插件,该插件可从 WP REST API 团队在 GitHub 上获取。
使用其他资源
到目前为止,我们已经为使用 WP REST API 检索数据奠定了相当坚实的基础。我们已经研究了选项请求以及它如何帮助我们在不需要外部文档的情况下探索 API。
您始终可以向特定资源发送
OPTIONS
请求,并检查它支持哪些端点和参数。如果您需要列出 WP REST API 提供的所有路由,您可以向/wp-json
处的索引端点发送GET
请求,正如我们在本教程的开始。考虑到自我文档的优势,我认为我们不需要进一步探索本教程中的每个单独资源,因为您现在可以自己完成此操作。
接下来会发生什么?
在这个冗长的教程中,我们学习了使用 OPTIONS 请求探索 API 并使用 WP REST API 从服务器检索数据。我们只查看了一些资源,包括帖子、修订后和帖子元,因为我们无法仅在一个教程中涵盖所有支持的资源。但您现在应该能够使用我们在本教程中介绍的技术自行探索 API。
WordPress 的经济非常活跃。有主题、插件、库和许多其他产品可以帮助您构建网站和项目。该平台的开源性质也使其成为提高编程技能的绝佳选择。
在本系列的下一部分中,我们将学习执行 CRUD 的其他三个操作,即创建、更新和删除资源。所以请继续关注。
以上がデータを取得するための WP REST APIの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。
このウェブサイトの声明この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。ホットAIツール
Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ
AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。
Undress AI Tool
脱衣画像を無料で
Clothoff.io
AI衣類リムーバー
AI Hentai Generator
AIヘンタイを無料で生成します。
人気の記事
R.E.P.O.説明されたエネルギー結晶と彼らが何をするか(黄色のクリスタル)1 か月前 By 尊渡假赌尊渡假赌尊渡假赌R.E.P.O.最高のグラフィック設定1 か月前 By 尊渡假赌尊渡假赌尊渡假赌アサシンのクリードシャドウズ:シーシェルリドルソリューション3週間前 By DDDWindows11 KB5054979の新しいものと更新の問題を修正する方法2週間前 By DDDWill R.E.P.O.クロスプレイがありますか?1 か月前 By 尊渡假赌尊渡假赌尊渡假赌ホットツール
メモ帳++7.3.1
使いやすく無料のコードエディター
SublimeText3 中国語版
中国語版、とても使いやすい
ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
ドリームウィーバー CS6
ビジュアル Web 開発ツール
SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
ホットトピック
Gmailメールのログイン入り口はどこですか?7555
15
CakePHP チュートリアル1382
52
Steamのアカウント名の形式は何ですか83
11
NYTの接続はヒントと回答です28
96
WordPressは初心者にとって簡単ですか? Apr 03, 2025 am 12:02 AM
WordPressは、初心者が簡単に始めることができます。 1.バックグラウンドにログインした後、ユーザーインターフェイスは直感的であり、シンプルなダッシュボードは必要なすべての関数リンクを提供します。 2。基本操作には、コンテンツの作成と編集が含まれます。 WysiWygエディターは、コンテンツの作成を簡素化します。 3.初心者は、プラグインとテーマを介してウェブサイトの機能を拡張でき、学習曲線は存在しますが、練習を通じて習得できます。
WordPressを3日で学ぶことはできますか? Apr 09, 2025 am 12:16 AM
3日以内にWordPressを学ぶことができます。 1.テーマ、プラグインなどのマスター基本知識。2。インストールや作業原則などのコア関数を理解します。 3.例を使用して、基本的および高度な使用法を学びます。 4.デバッグテクニックとパフォーマンスの最適化の提案を理解します。
ワードプレスは何に適していますか? Apr 07, 2025 am 12:06 AM
wordpressisisgoodforvirtalayanywebprojectoitsversitilityasacms.itexcelsin:1)ユーザーフレンドリー、柔軟性と柔軟性と顧客化の維持、およびプルージンの数値化; 3)seooptimization;
WordPressの費用はいくらですか? Apr 05, 2025 am 12:13 AM
WordPress自体は無料ですが、使用するには余分な費用がかかります。1。WordPress.comは、無料から支払いまでの範囲のパッケージを提供し、価格は月あたり数ドルから数十ドルまでの範囲です。 2。WordPress.orgでは、ドメイン名(年間10〜20米ドル)とホスティングサービス(月額5〜50米ドル)を購入する必要があります。 3.ほとんどのプラグインとテーマは無料で、有料価格は数十から数百ドルです。適切なホスティングサービスを選択し、プラグインとテーマを合理的に使用し、定期的に維持および最適化することにより、WordPressのコストを効果的に制御および最適化できます。
WixまたはWordPressを使用する必要がありますか? Apr 06, 2025 am 12:11 AM
WIXは、プログラミングの経験がないユーザーに適しており、WordPressは、よりコントロールと拡張機能を必要とするユーザーに適しています。 1)WIXはドラッグアンドドロップエディターとリッチテンプレートを提供しているため、Webサイトをすばやく構築できます。 2)オープンソースのCMSとして、WordPressには巨大なコミュニティとプラグインエコシステムがあり、詳細なカスタマイズと拡張をサポートしています。
WordPressはCMSですか? Apr 08, 2025 am 12:02 AM
WordPressはコンテンツ管理システム(CMS)です。コンテンツ管理、ユーザー管理、テーマ、プラグイン機能を提供して、Webサイトコンテンツの作成と管理をサポートします。その実用的な原則には、ブログから企業Webサイトまで、さまざまなニーズに適したデータベース管理、テンプレートシステム、プラグインアーキテクチャが含まれます。
なぜWordPressを使用するのはなぜですか? Apr 02, 2025 pm 02:57 PM
人々は、その力と柔軟性のためにWordPressを使用することを選択します。 1)WordPressは、さまざまなWebサイトのニーズに適した、使いやすさとスケーラビリティを備えたオープンソースのCMSです。 2)豊富なテーマとプラグイン、巨大なエコシステム、強力なコミュニティサポートがあります。 3)WordPressの作業原則は、テーマ、プラグイン、コア関数に基づいており、PHPとMySQLを使用してデータを処理し、パフォーマンスの最適化をサポートします。
WordPressはまだ無料ですか? Apr 04, 2025 am 12:06 AM
WordPressのコアバージョンは無料ですが、使用中に他の料金が発生する場合があります。 1。ドメイン名とホスティングサービスには支払いが必要です。 2。高度なテーマとプラグインが充電される場合があります。 3.プロフェッショナルサービスと高度な機能が請求される場合があります。