wordpress - WordPress Rest api 中禁止获取草稿

标签 wordpress wordpress-rest-api wp-api

我正在使用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/

相关文章:

wordpress - 如何使用 WooCommerce 订阅获取特定用户的订阅?

php - Wordpress 登录不适用于电子邮件地址

javascript - 如何在 Google map 上添加当前位置标记

wordpress - 在 Wordpress REST API 中按菜单顺序排序?

wordpress - 如何通过 WP REST API V2 使用自定义字段正确创建自定义帖子类型

php - WP_REST_Response 下载文件

javascript - 使用 Javascript 中的 WP-REST-API 通过自定义字段检索帖子

php - WordPress WP REST API 按域限制请求

wordpress - 无需身份验证即可使用 WP-REST 获取帖子