按类别搜索帖子Wordpress WP-API

时间:2016-08-14 17:39:08

标签: php json wordpress wp-api

我想按WP-API中的类别搜索帖子。

我知道我可以按属性类别搜索帖子或过滤[cat]。

但这些帖子包含多个类别。

我试图像这样搜索:

{host}/wp-json/wp/v2/posts?categories=69&filter[cat]=[228,246,237]&per_page=50

{host}/wp-json/wp/v2/posts?categories=69&filter[cat]=228&filter[cat]=246&filter[cat]=237&per_page=50

{host}/wp-json/wp/v2/posts?categories=69&categories=246&categories=237&categories=228

这对我不起作用。它导致搜索查找最后一个属性。

有什么想法吗?

这是Json响应的结构

{
    "id": 9333,
    "date": "2016-08-02T14:17:01",
    "date_gmt": "2016-08-02T12:17:01",
    "guid": {
      "rendered": "{post}/?p=9333"
    },
    "modified": "2016-08-03T08:50:35",
    "modified_gmt": "2016-08-03T06:50:35",
    "slug": "{post}",
    "type": "post",
    "link": "{host}/{post}/",
    "title": {
      "rendered": "{post}"
    },
    "content": {
      "rendered": "{post}"
    },
    "excerpt": {
      "rendered": "{post}"
    },
    "author": 3,
    "featured_media": 0,
    "comment_status": "closed",
    "ping_status": "closed",
    "sticky": false,
    "format": "standard",
    "categories": [
      228,
      237,
      207,
      217,
      246,
      231,
      69,
      221,
      270,
      244
    ],
    "tags": [],
    "_links": []
  }

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您想获得多个类别的帖子,根据您的需求,几乎没有解决方案。

如果您想从ID = 1的类别或ID = 2的类别获取帖子,请使用以下网址:

http://localhost/lifelog/wp-json/wp/v2/posts?filter[cat]=1,2

或:

http://localhost/lifelog/wp-json/wp/v2/posts?categories=1,2

如果您想从ID = 1的类别和ID = 2的类别获取帖子,您可以使用:

http://localhost/lifelog/wp-json/wp/v2/posts?filter[category__and][]=1&filter[category__and][]=2

但是 - 过滤器阵列中使用的某些过滤器值需要具有 edit_posts 权限的经过身份验证的用户。

幸运的是,有一个更简单的解决方案 - WordPress支持以下链接:

http://example.com/category/test1+test2/

根据以上网址,您将获得分配给test1 AND test2类别的帖子列表。在REST API中,您可以使用以下URL实现相同的行为:

http://localhost/lifelog/wp-json/wp/v2/posts?filter[category_name]=test1%2Btest2

请记住,您必须将 + 符号替换为%2B