为什么PER_PAGE不能处理WP API中的类别?

时间:2018-07-17 作者:DᴀʀᴛʜVᴀᴅᴇʀ

首先,我搜索了几个问题和文档,但似乎是WordPress的v2 许多老问题不再有效。我想做的是从Postman中的一个类别中获取所有帖子或单个帖子,而不是常见的返回10篇帖子,而无需修改函数中的API。php。

tldr我从引用REST API Handbook 并查看schema 我看到了categories 我可以使用以下方法返回10个最新类别:

http://foobar.com/wp-json/wp/v2/posts/categories_name=hello
引用arguments 我明白了per_page 所以我试着:

http://foobar.com/wp-json/wp/v2/posts/categories_name=hello?per_page=‌​1
它从类别中返回10个帖子hello 所以我修改并尝试:

http://foobar.com/wp-json/wp/v2/posts/categories_name=hello&per_page=‌​1
我得到一个返回的错误:

{“code”:“rest\\u invalid\\u param”,“message”:“无效参数:per\\u page”,“data”:{“status”:400,“params”:{“per\\u page”:“per\\u page不是整型。”}}}}}

通过Google I搜索see How to retrieve a list of categories/ tag in Wordpress REST API 但答案是基于v1.

尝试Wordpress API JSON return limit 我使用:

http://foobar.com/wp-json/wp/v2/posts/?per_page=‌​1
我得到了一个单数帖子,所以我修改了我的尝试:

http://foobar.com/wp-json/wp/v2/posts/?per_page=‌​1$categories_name=hello
它忽略类别类型并返回最新的帖子。阅读Get more than 10 posts in a specific category with the WordPress API 使用以下命令后,我提取了类别(4)的ID:

http://foobar.com/wp-json/wp/v2/categories
然后编码:

http://foobar.com/wp-json/wp/v2/posts/?categories=4&per_page=‌​1
我得到:

{“code”:“rest\\u invalid\\u param”,“message”:“无效参数:per\\u page”,“data”:{“status”:400,“params”:{“per\\u page”:“per\\u page不是整型。”}}}}}

我想我可以用-1 类似于主题的开发,但我有一个错误。

我读到的其他参考文献有:

在查看了Pagination 它似乎只适用于post 而不是任何category. 如果我使用/wp-json/wp/v2/posts?per_page=20, 也

问题

调用站点的WP API时,如何控制per_page 返回类别是1个帖子还是所有帖子?

3 个回复
最合适的回答,由SO网友:DᴀʀᴛʜVᴀᴅᴇʀ 整理而成

几个小时后,我尝试了不同的排列方式来获得分类回报,我找到了答案。建立与post 使用:

/wp-json/wp/v2/categories/
我需要一个特定的类别和id 该类别的4 这只鼻涕虫被称为foobar.

获取与类别关联的1篇帖子foobar 我必须使用:

/wp-json/wp/v2/posts?categories=4&per_page=1
获取100篇与该类别相关的帖子foobar 我使用了:

/wp-json/wp/v2/posts?categories=4&per_page=100
正如我发现的,在answer 我的使用逻辑-1 不正确,只能使用1到100。正如评论中所讨论的,如果有100多篇帖子,那么您可以使用offset 我在文件中发现Pagination:

/wp-json/wp/v2/posts?categories=4&offset=10&per_page=1
因此,要获得100多个循环,您需要使用您想要的任何语言构建一个循环,并将其推送到一个文件中。在以下情况下协助循环/wp-json/wp/v2/categories/ 当您引用类别时,您可以引用count 低于id.

SO网友:Jacob Peattie

您使用的几乎所有URL在某些方面都是无效的:

http://foobar.com/wp-json/wp/v2/posts/categories_name=hello
categories_name 不是valid argument 对于列出帖子,即使是您也缺少? 查询字符串的一部分。

http://foobar.com/wp-json/wp/v2/posts/categories_name=hello?per_page=‌​1
这一个也缺少?. API用于参数的URL上的查询参数需要以开头?, 具有& 有关其他参数。格式正确的查询字符串如下所示:

http://domain.com/path/?argument=value&argument2=value2
所以这个:

http://foobar.com/wp-json/wp/v2/posts/categories_name=hello&per_page=‌​1
也缺少? 但你用过& 这次正确(尽管仍在使用无效categories_name 参数)。

这个:

http://foobar.com/wp-json/wp/v2/posts/?per_page=‌​1$categories_name=hello
正在使用$ 出于某种原因。这不是分隔查询字符串中参数的有效方法(并且仍然使用无效的categories_name 参数)。

这个是正确的:

http://foobar.com/wp-json/wp/v2/posts/?categories=4&per_page=‌​1
但根据您的评论:

我想我可以使用-1来开发一个主题,但我遇到了一个错误。

听起来你好像真的试过了:

http://foobar.com/wp-json/wp/v2/posts/?categories=4&per_page=‌​-1
这是行不通的,因为-1 是无效值。您只能在1100 API的结果。

SO网友:TheTC

在products/categories端点上执行“per\\u page”时,可以使用的最大值为100。任何会导致错误的错误:无效参数:per\\u page[rest\\u Invalid\\u param]

结束