WP REST API:按类别1和类别2过滤


12

我一直在干预REST API,并且对此深信不疑:如何过滤cat1和cat2中的帖子?

现在,?categories[]=45&categories[]=50返回类别ID 45或50的退货-如何获得45和50的帖子?

提前致谢。


您找到了解决方案吗?
科里

@Corey:不。猜猜这是不可能的,到目前为止(看到其他一些插件支持文章声称),我正在将API用于Ionic的应用程序,我分别加载了它们并相交了。如果我的学习不完整,请放开它。读过某个地方编辑了Plugin(一点也不推荐)来实现它。
杰西·弗朗西斯

Answers:





1

安装提到的Austin过滤器插件(https://github.com/WP-API/rest-filter)并尝试?filter[categories]=cat_one_slug%2Bcat_two_slug

我发现这%2B是该符号的等效+代码。

通常,我们将使用+AND运算符,但不幸的是,它被转换为空格,请%2B改为使用。


1

在当前版本的API中,似乎没有办法做到这一点。无需使用插件,就可以通过自定义端点或通过对特定帖子类型使用rest查询过滤器功能来实现。

这是一个粗略的过滤器函数,它添加了一个名为的参数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


0

这就是我所做的,效果很好。

http://example.com/wp-json/wp/v2/articles/?_embed&categories=1,2,3,4&per_page=30

-1

对于使用Rest API v3的用户,它适用于我:

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

这是用于产品和产品类别的WooCommerce REST API。问题是有关WordPress REST API的帖子和帖子类别。
雅各布·皮蒂
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.