在Wordpress中禁止提取草稿

mot*_*dev 11 wordpress wp-api wordpress-rest-api

我正在使用wpapi npm模块与节点应用程序中的WP rest api进行交互.我通过身份验证,我的用户创建了一些草稿帖子.当我使用相同的凭据进入仪表板时,我也可以查看/编辑草稿帖子.

我正在使用此方法列出草稿:

wp.posts().auth().param( 'context', 'edit' ).param( 'status', 'draft' )
Run Code Online (Sandbox Code Playgroud)

但我一直收到这个错误:

{ code: 'rest_invalid_param',
  message: 'Invalid parameter(s): status',
  data: { status: 400, params: { status: 'Status is forbidden.' } } }
Run Code Online (Sandbox Code Playgroud)

这是我对这个问题和一些有用的背景进行评论的地方.

http:// localhost:8000/wp-json/wp/v2/posts?status = draft的curl响应是相同的错误消息,所以我不相信问题出在节点模块上.

K. *_*dam 15

我是wpapi模块的作者,这个问题最终出现在我们的问题列表https://github.com/WP-API/node-wpapi/issues/325上,并代表了我们在最新版本中修复过的错误.

查询草稿时需要进行身份验证,不提供身份验证可能导致此400错误; 但是,如上面链接的问题所述,身份验证适用于一次性请求.为什么400?发生的事情是,在wpapi内部请求我们在分页时没有正确转发身份验证凭据,因此对第一页结果的请求将返回200,然后第二页将返回400,因为第二个请求缺少身份验证.我们通过在分页集合时总是传递身份验证凭据来解决这个问题,并希望这不会使其他人绊倒.

如果遇到400,则进行常规故障排除:

  • 你确定你已通过身份验证吗?(尝试点击/ users/me)
  • 您的用户是否具有查看草稿帖子所需的功能?

如果您发现这样的错误,我们欢迎您提出问题!