【问题标题】:How to restrict returned Wordpress REST-API fields when using WP-API Node Module使用 WP-API 节点模块时如何限制返回的 Wordpress REST-API 字段
【发布时间】:2026-01-06 02:00:01
【问题描述】:

如果我在浏览器中调用这个 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 不是函数

谁能指出我正确的方向?谢谢

【问题讨论】:

    标签: wordpress-rest-api wp-api


    【解决方案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 使用的格式

      【讨论】: