はじめに私はいくつかの質問とドキュメントの部分を調べてきましたが、WordPressのv2
でそれは古い質問の多くはもはや有効ではないようです。私がやろうとしているのは、functions.phpのAPIを修正する必要なしに、一般的に返される10の投稿の代わりに、すべての投稿または単一の投稿をPostmanのカテゴリーから取得することです。
REST APIハンドブック を参照し、 schema を検討することから始めました。categories
を見て、次の10つの最新のカテゴリを返すことができます。
http://foobar.com/wp-json/wp/v2/posts/categories_name=hello
引数 を参照するとper_page
が表示されるので試してみました。
http://foobar.com/wp-json/wp/v2/posts/categories_name=hello?per_page=1
そしてそれはカテゴリhello
から10の投稿を返すので私は修正してみました:
http://foobar.com/wp-json/wp/v2/posts/categories_name=hello&per_page=1
そして私はエラーが返されます:
{"code": "rest_invalid_param"、 "message": "パラメータが無効です:per_page"、 "data":{"status":400、 "params":{"per_page": "per_pageは整数型ではありません" }}}
Googleで検索するI Wordpressでカテゴリ/タグのリストを取得する方法を参照REST API しかし回答はv1
に基づいています。
Wordpress APIのJSON戻り制限を試す 私が使用します:
http://foobar.com/wp-json/wp/v2/posts/?per_page=1
そして私は特異な投稿を得たので、私の試みを修正しました:
http://foobar.com/wp-json/wp/v2/posts/?per_page=1$categories_name=hello
カテゴリの種類を無視して最新の投稿を返します。 Reading WordPress APIを使って特定のカテゴリーの中で10以上の投稿を取得します 使用後にカテゴリーのID(4)を取得しました:
http://foobar.com/wp-json/wp/v2/categories
それからコーディングしなさい:
http://foobar.com/wp-json/wp/v2/posts/?categories=4&per_page=1
そして私は得ます:
{"code": "rest_invalid_param"、 "message": "パラメータが無効です:per_page"、 "data":{"status":400、 "params":{"per_page": "per_pageは整数型ではありません" }}}
テーマの開発と同じように-1
を使用できるかもしれないと思いましたが、エラーが発生しました。
私が読んだ他の参考文献は:
これが見つかりました フィルタが削除されたため、v2/postsと同じスキーマでカテゴリスラッグで投稿を取得する方法? 読んだ後に カテゴリ別に検索投稿Wordpress WP-API
ページ区切り に関するドキュメントを確認した後、それはpost
でのみ動作し、category
では動作しないようです。 /wp-json/wp/v2/posts?per_page=20
を使用した場合も、10件以上の投稿しかできません。
サイトのWP APIを呼び出すとき、カテゴリのper_page
の戻りを1つの投稿またはすべての投稿に制御するにはどうすればよいですか。
数時間後にカテゴリの収益を得る方法の異なる順列を試してみたところ、私は自分の答えを見つけました。 post
に関連するカテゴリのリストを確立するには、次のようにします。
/wp-json/wp/v2/categories/
特定のカテゴリが必要で、そのカテゴリのid
は4
で、スラッグはfoobar
と呼ばれていました。
カテゴリfoobar
に関連する1の投稿を取得するには、使用しなければなりませんでした:
/wp-json/wp/v2/posts?categories=4&per_page=1
カテゴリfoobar
に関連する100の投稿を取得するには:
/wp-json/wp/v2/posts?categories=4&per_page=100
-1
の使い方の answer という論理が間違っていたので、1から100までしか使えません。 100を超える投稿、offset
を使用してページを呼び出すことができます。ドキュメントの下に、 ページ付け があります。
/wp-json/wp/v2/posts?categories=4&offset=10&per_page=1
100以上の言語を取得するには、希望する言語でループを作成し、それをファイルにプッシュします。 /wp-json/wp/v2/categories/
の下でのループを容易にするために、そしてあなたがカテゴリを参照するときあなたはcount
の下にあるid
の下で合計カウントを参照することができます。
使用しているURLのほとんどすべてが何らかの形で無効です。
http://foobar.com/wp-json/wp/v2/posts/categories_name=hello
categories_name
は、投稿をリストするための 有効な引数 ではなく、たとえクエリ文字列の?
部分が欠落していてもです。
http://foobar.com/wp-json/wp/v2/posts/categories_name=hello?per_page=1
これには?
もありません。 APIが引数に使用するURLのクエリパラメータは、?
で始まる必要があり、追加のパラメータには&
で始まる必要があります。正しくフォーマットされたクエリ文字列は次のようになります。
http://domain.com/path/?argument=value&argument2=value2
だからこれは:
http://foobar.com/wp-json/wp/v2/posts/categories_name=hello&per_page=1
?
も欠落していますが、今回は&
を正しく使用しました(ただし、無効なcategories_name
引数を使用しています)。
これです:
http://foobar.com/wp-json/wp/v2/posts/?per_page=1$categories_name=hello
何らかの理由で$
を使用しています。これは、クエリ文字列内のパラメータを分離する有効な方法ではありません(無効なcategories_name
引数を使用しています)。
これはis正しい:
http://foobar.com/wp-json/wp/v2/posts/?categories=4&per_page=1
しかし、あなたのコメントに基づいて:
テーマの開発と同様に-1を使用できるかもしれないと思っていましたが、エラーが発生しました。
あなたが実際に試したようです:
http://foobar.com/wp-json/wp/v2/posts/?categories=4&per_page=-1
-1
は無効な値であるため、どのは機能しません。 APIを使用して取得できる結果は、1
と100
の間のみです。