是否可以使用rest查询+筛选器来完成此操作?例如:。http://wpsite.com/wp-json/wp/v2/posts?filter[only-permalinks]
是,从4.9.8开始(参见#43874) 可以只渲染_fields
参数
示例仅渲染永久链接:
https://example.com/wp-json/wp/v2/posts?_fields=link
[
{
link: "https://example.com/foo/"
},
{
link: "https://example.com/bar/"
},
]
仅渲染后期ID和永久链接:
https://example.com/wp-json/wp/v2/posts?_fields=id,link
[
{
id: 123,
link: "https://example.com/foo/"
},
{
id: 234,
link: "https://example.com/bar/"
},
]
仅渲染后期ID和段塞:
https://example.com/wp-json/wp/v2/posts?_fields=id,slug
[
{
id: 123,
slug: "foo"
},
{
id: 234,
slug: "bar"
},
]
获取所有可用项当前我们必须通过分页获取所有可用项,如:
https://example.comwp-json/wp/v2/posts?_fields=slug&per_page=100&page=1
https://example.comwp-json/wp/v2/posts?_fields=slug&per_page=100&page=2
...
在哪里
per_page
默认值为10,最大值为100。
如果项目数超过可用资源,则在单个请求中获取所有项目可能会导致致命错误。
门票#43998 允许未绑定的请求(类似per_page=-1
) 对于已登录的用户,已关闭为wontfix,因为它无法扩展并且存在性能问题。
有张票#45140 增加的上限per_page
数百人。
通常不需要在用户界面中显示这么多项目,而且存在javascript技术来处理分页。
如果确实需要更多,那么可以通过rest_{$post_type}_query
覆盖的最大默认值posts_per_page
, 如果超出可用资源,则有发生致命错误的风险。