REST APIをいじってみましたが、これで困っています。cat1とcat2の両方で投稿をフィルタリングするにはどうすればよいですか?
今のところ、?categories[]=45&categories[]=50
カテゴリID 45または50 で返されます-45および50で投稿を取得するにはどうすればよいですか?
前もって感謝します。
REST APIをいじってみましたが、これで困っています。cat1とcat2の両方で投稿をフィルタリングするにはどうすればよいですか?
今のところ、?categories[]=45&categories[]=50
カテゴリID 45または50 で返されます-45および50で投稿を取得するにはどうすればよいですか?
前もって感謝します。
回答:
複数のカテゴリは、以下のようにカンマで区切ることができます
http://example.com/wp-json/wp/v2/posts?categories=20,30
お役に立てれば
@Jesse参照:WP-API / WP-API#2990
WP 4.7以降filter
、WP-APIから削除されました。
このプラグインを使用する必要があります:https : //github.com/WP-API/rest-filter
次の方法で複数のカテゴリにアクセスできるはずです。
http://YOURSITE.DEV/wp-json/wp/v2/posts?categories=45+50
お役に立てば幸いです。
乾杯
前述のフィルタープラグインAustin(https://github.com/WP-API/rest-filter)をインストールして、試してください?filter[categories]=cat_one_slug%2Bcat_two_slug
。
それがシンボルに%2B
相当するコードであることがわかりました+
。
通常は+
AND演算子を使用しますが、残念ながらスペースに変換されるため、%2B
代わりに使用してください。
現在のバージョンのAPIでこれを行う方法はないようです。プラグインを使用せずに、カスタムエンドポイントを使用するか、特定の投稿タイプの残りのクエリフィルター機能を使用して実現できます。
これは、次のパラメータを追加する大まかなフィルタ関数ですcat_relation
。
add_filter( 'rest_post_query', function( $args, $request ) {
if($request['cat_relation'] == 'AND') {
$args['category__and'] = $request['categories'];
}
return $args;
}, 10, 2);
したがって、リクエストURLの例は次のようになります。
http://example.com/wp-json/wp/v2/posts?categories=17,8&cat_relation=AND
これは私がやったことです、それはうまくいきます。
http://example.com/wp-json/wp/v2/articles/?_embed&categories=1,2,3,4&per_page=30
Rest API v3を使用している人のために、それは私のために働きます:
http://example.com/wp-json/wc/v3/products/?category=42,43