使用JSON REST API查询包含两个分类的帖子

时间:2014-12-30 作者:Chris

我正在使用JSON Rest API插件(https://wordpress.org/plugins/json-rest-api/). 我有两个自定义分类法,每个分类法有一个术语:

内部部件类别眼睛症状类别(男性)骨折单骨折我需要显示与这些类别和术语匹配的帖子。我尝试了以下方法:

http://mcsc.hawkhorne.com/wp-json/posts?type=male-conditions&filter[taxonomy]=inner-part-categories&filter[term]=Eye&filter[taxonomy]=symptoms-categories-man&filter[term]=Broken%20Bone%20Single%20Fracture
但是这个方法只返回最后声明的分类法和术语下的帖子。例如,如果我将税和术语转换为:

http://mcsc.hawkhorne.com/wp-json/posts?type=male-conditions&filter[taxonomy]=symptoms-categories-man&filter[term]=Broken%20Bone%20Single%20Fracture&filter[taxonomy]=inner-part-categories&filter[term]=Eye
然后,它将只显示税务内部部分类别和术语眼下的帖子,而忽略第一个税务和术语查询。

我已经搜索了几个小时,找到了一个解决方案。

我也在想,也许可以在ajax数据请求中传递一个排序数组,就像在WP查询中那样。我有以下代码:

数据:{筛选器:{“posts\\u per\\u page”:-1,“post\\u status”:“publish”,“orderby”:“title”,“order”:“ASC”}},

谢谢你的帮助。

1 个回复
SO网友:DeNitto

首先,您的最后一篇文章类型和/或术语覆盖之前所有内容的问题是因为“过滤器”是一个二维数组。因此,“分类法”(本例中的键)只能有一个值。如果这看起来很奇怪,请阅读插件github上的这一非常有用的页面,它对我帮助很大(read this)

太长,读不下去了使用WP JSON API可以实现术语列表和多维数组!你会的type[]=post_type1&type[]=post_type2 自定义帖子类型!试试看。

所以,考虑到这一点。。。目前,您仍然无法进行多个自定义分类查询(据我所知)。我知道这很糟糕。我的解决方案?将第二个查询嵌套在第一个成功回调中,然后串联数组并对最终数组进行排序。

$http.get(
  $scope.api + \'/posts?type=eats&filter[taxonomy]=eats-categories&filter[term]=eats-video\'
).
success(function(data, status, headers, config){
  $scope.posts = data;
    $http.get(
      $scope.api + \'/posts?type=shreds&filter[taxonomy]=shreds-categories&filter[term]=shreds-video\'
    ).
    success(function(data_2, status, headers, config){
      $scope.posts = $scope.posts.concat( data_2 );
    }).
    error(function(data_2, status, headers, config){
        alert( \'video 2 widget query error\' );
    });     
}).
error(function(data, status, headers, config){
    alert( \'video widget query error\' );
});  
注意,这段代码是特定于我的查询的,但我对它进行了测试,结果很好。我还没有编写排序函数,但我将按照数组值的WordPress日期字段进行排序,或者使用角度过滤器进行有趣的操作。

编辑:为了清晰起见做了一些更改。

结束