1

我想在 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": []
  }

谢谢!

4

1 回答 1

1

如果您想从多个类别中获取帖子,则几乎没有解决方案,具体取决于您的需求。

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

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/

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

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

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

于 2016-08-14T19:58:18.640 回答