WP REST API:カテゴリー1およびカテゴリー2でフィルター


12

REST APIをいじってみましたが、これで困っています。cat1とcat2の両方で投稿をフィルタリングするにはどうすればよいですか?

今のところ、?categories[]=45&categories[]=50カテゴリID 45または50 で返されます-45および50で投稿を取得するにはどうすればよいですか?

前もって感謝します。


これに対する解決策を見つけましたか?
コリー

@Corey:いいえ。現時点では不可能だと思います(Ionicを使用するアプリにAPIを使用していたので、他のプラグインサポートの投稿を見ました)、それらを個別にロードして、代わりに交差させました。私の学習が不完全な場合に備えて、開いたままにしておきます。それを達成するためにプラグインが編集されている場所(どこでも推奨されません)を読みましたか?
ジェシーPフランシス

回答:



6

@Jesse参照:WP-API / WP-API#2990

WP 4.7以降filter、WP-APIから削除されました。

このプラグインを使用する必要があります:https : //github.com/WP-API/rest-filter


1
確実なメンテナンスのテストが含まれている代替プラグインgithub.com/bueltge/wp-rest-api-filter-itemsには、
bueltge

@bueltge、興味深い。現在、rest-api-filter-fieldsプラグインgithub.com/svrooij/rest-api-filter-fieldsを使用していますが、これは同じことをしているようです。
オースティンパッシー


1

前述のフィルタープラグインAustin(https://github.com/WP-API/rest-filter)をインストールして、試してください?filter[categories]=cat_one_slug%2Bcat_two_slug

それがシンボルに%2B相当するコードであることがわかりました+

通常は+AND演算子を使用しますが、残念ながらスペースに変換されるため、%2B代わりに使用してください。


1

現在のバージョンの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



-1

Rest API v3を使用している人のために、それは私のために働きます:

http://example.com/wp-json/wc/v3/products/?category=42,43

これは、製品および製品カテゴリ用のWooCommerce REST APIです。問題は、WordPress REST APIでの投稿と投稿カテゴリに関するものでした。
Jacob Peattie
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.