You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过JSON API删除WordPress用户及权限问题排查

解决方案建议

针对JSON API插件删除用户的权限错误

错误提示明确要求要么传递管理员的u(用户名)和p(密码)参数,要么以管理员身份登录请求。可以按以下方式处理:

  • 验证Nonce有效性:确认请求中的nonce是通过正确的action生成的,JSON API插件通常使用json_api作为nonce action,你可以用wp_create_nonce('json_api')生成有效nonce替换当前值。
  • 安全传递管理员身份:不建议明文传递u和p参数(存在泄露风险),建议先通过管理员账号登录站点,获取会话cookie后,在删除请求的Header中携带该cookie(比如Cookie: wordpress_logged_in_xxx=xxx),以认证管理员身份。
  • 检查插件权限配置:进入JSON API插件的设置页面,确认users/delete_user接口的权限设置为允许管理员访问,避免额外的权限限制。

针对WP REST API仅显示管理员用户的问题

默认情况下,wp-json/wp/v2/users接口只有管理员能查看所有用户,普通用户仅能获取自身数据。解决方式如下:

  • 调整REST API权限过滤器:添加PHP代码修改用户查询权限,允许指定角色(如管理员、编辑者)查看所有用户:
add_filter('rest_user_query', function($args, $request) {
    // 允许拥有编辑用户权限的角色查看所有用户
    if (current_user_can('edit_users')) {
        unset($args['who']); // 移除默认的"仅当前用户"限制
    }
    return $args;
}, 10, 2);

将代码添加到主题的functions.php或自定义插件中。

  • 使用管理员身份请求:以管理员身份登录后,携带会话cookie请求wp-json/wp/v2/users,即可获取所有用户数据;删除用户可调用wp-json/wp/v2/users/{id}的DELETE方法,同时在请求Header中添加X-WP-Nonce(通过wp_create_nonce('wp_rest')生成)以验证权限。
  • 确认用户角色权限:确保用于请求的账号拥有list_users和delete_users权限,默认仅管理员角色具备这些权限,若需其他角色拥有权限,可通过用户角色编辑工具或自定义代码添加对应权限。

内容的提问来源于stack exchange,提问作者Rahul Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 22:18:19