按类别搜索 post Wordpress WP-API
Search post by categories 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": []
}
谢谢!
如果您想从多个类别中获取帖子,解决方案很少,具体取决于您的需要。
如果您想从 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。
我想在 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": []
}
谢谢!
如果您想从多个类别中获取帖子,解决方案很少,具体取决于您的需要。
如果您想从 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。