我正在使用wpapi npm 模块,用于与节点应用程序中的 WP Rest api 交互。我已通过身份验证,并且我的用户创建了一些草稿帖子。当我使用相同的凭据转到仪表板时,我也可以查看/编辑草稿帖子。
我正在使用此方法列出草稿:
wp.posts().auth().param( 'context', 'edit' ).param( 'status', 'draft' )
但我不断收到此错误:
{ code: 'rest_invalid_param',
message: 'Invalid parameter(s): status',
data: { status: 400, params: { status: 'Status is forbidden.' } } }
Here's where I've commented on the issue and some helpful context.
curl 响应 http://localhost:8000/wp-json/wp/v2/posts?status=draft是相同的错误消息,所以我不认为问题出在节点模块上。
最佳答案
我是 wpapi 模块的作者,这个问题最终出现在我们的问题列表 https://github.com/WP-API/node-wpapi/issues/325并代表了我们在最新版本中修复的错误。
查询草稿时需要进行身份验证,不提供身份验证会导致此400错误;然而,正如上面链接的问题中所指出的,身份验证适用于一次性请求。为什么是400?发生的情况是,在 wpapi 请求中,我们在对集合进行分页时没有正确转发身份验证凭据,因此对第一页结果的请求将返回 200,然后第二页将返回 400,因为第二个请求缺少身份验证。我们通过在分页集合时始终传递身份验证凭据解决了此错误,希望这不会让其他人陷入困境。
如果您确实遇到 400,则进行一般故障排除:
- 您确定您已通过身份验证吗? (尝试点击/users/me)
- 您的用户是否具备查看草稿帖子所需的能力?
如果您确实发现这样的错误,我们欢迎您提出问题!
关于wordpress - WordPress Rest api 中禁止获取草稿,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44840350/