【发布时间】:2019-05-28 22:16:43
【问题描述】:
我需要使用 WordPress Rest API 删除用户及其所有(可能是自定义)帖子。
我尝试调用<url_base>/wp/v2/users/<id>,我必须提供另一个参数?reassign=USER_ID 才能将其帖子重新分配给另一个用户。
一个愚蠢的解决方案应该是向系统添加一个“垃圾”用户并将所有已删除的帖子分配给他。然后我可以创建一个工作来删除所有帖子。这对我来说似乎是一种非常愚蠢的方式.. :(
我只想删除它们。我可以从 WP 管理面板完成...为什么我不能通过 Rest Api?
谢谢
编辑 将“重新分配”作为空参数传递(不接受 null ......)API 通知我我无法删除自己的个人资料。我正在以订阅者(最终用户)的身份对其进行测试,但我需要能够管理和删除我自己的数据......我错了吗?!
【问题讨论】:
-
似乎wp_delete_user 的重新分配是可选的。在 REST API 中它是强制性的,这似乎很奇怪。您是否尝试过省略它,或者将其保留为空/空?也许文档有错误。
-
看起来好一点,但现在有一条消息通知我无法删除用户。我正在以订阅者的身份对其进行测试(因为我假装是该应用程序的最终用户),但我无法删除我的个人资料。我还尝试了另一条路线“/wp/v2/users/me”
-
我认为这些身份验证问题不在范围内,应该在单独的问题中解决。您能否尝试使用具有足够权限的用户?这样,我们至少可以理清
reassign参数上的问题。 -
正如 scristalli 所说,这(可能)是一个权限问题:
Subscriber角色没有delete_posts功能,因此您无法删除自己的帖子。您需要具有上述能力的更高角色才能删除您自己的帖子。订阅者也不能删除自己的帐户(甚至不能从仪表板中删除),这只有管理员才能做到。 -
使用属于更高角色的不同用户,删除成功。我将设计一个具有更多功能的新角色,然后尝试将删除限制在其自己的个人资料中。
标签: wordpress wordpress-rest-api