我想按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": []
}
谢谢!
答案 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 。