使用 WP-API 节点模块时如何限制返回的 Wordpress REST-API 字段
Posted
技术标签:
【中文标题】使用 WP-API 节点模块时如何限制返回的 Wordpress REST-API 字段【英文标题】:How to restrict returned Wordpress REST-API fields when using WP-API Node Module 【发布时间】:2018-05-02 10:38:53 【问题描述】:如果我在浏览器中调用这个 Wordpress 博客网址
<root...>wp-json/wp/v2/posts?per_page=5&fields=id,link,title
我返回 JSON,结果仅限于 3 个字段
那么在使用node js wp-api 模块的时候怎么办呢?
我想要类似于 .fields([]) 但文档中没有任何内容,在模块代码中找不到任何内容。 TypeError: wpapi.posts(...).perPage(...).fields 不是函数
或类似 .filter() TypeError: wpapi.posts(...).perPage(...).filter 不是函数 但我认为这可能与另一个所需的 Wordpress 插件有关。
wpapi.posts()
.perPage(5)
.fields(['id','link','title'])
.search( 'search-term' ) //= (search in title or content)
.filter(
category_name: 'islands',
fields: [ 'id','link','title' ]
)
.get(function (err, data)
.....等等
TypeError: wpapi.posts(...).perPage(...).fields 不是函数
谁能指出我正确的方向?谢谢
【问题讨论】:
【参考方案1】:看来 wp-api 节点模块不允许这样做。
所以我卸载了它,现在使用 axios 和标准文本 url。
【讨论】:
【参考方案2】:这对我有用:
wpapi.posts().param('_fields', 'id,title,content').get()
node-wpapi documentation 似乎暗示说perPage()
和类似的函数是调用param(props, value)
的便利函数。
wpapi.posts().param('_fields', ['id','title','content']).get()
似乎也可以,但第一个选项给出的请求 URL 看起来更像 Wordpress REST API Handbook 使用的格式
【讨论】:
以上是关于使用 WP-API 节点模块时如何限制返回的 Wordpress REST-API 字段的主要内容,如果未能解决你的问题,请参考以下文章
将 Woocommerce REST API 与 WP-API 的 JWT 身份验证一起使用时,无法获得超过 12 个结果