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

WordPress插件开发:获取当前编辑用户ID的问题

获取WordPress用户编辑页面中被编辑用户的ID(ACF钩子场景)

我懂你碰到的问题了——在ACF的acf/load_field/name=funbotic_parents钩子里直接用$_GET['user_id']拿不到值,明明URL里清清楚楚带着这个参数。这大概率是因为WordPress在某些钩子的执行时机,已经对请求参数做了处理,或者当前上下文里直接访问$_GET的方式不够可靠。

给你几个更稳妥的解决方案,按推荐程度排序:

方案1:利用ACF钩子自带的$post_id解析用户ID

在用户编辑页面的ACF钩子中,第二个参数$post_id的格式是user_{用户ID},直接解析这个参数就能拿到目标ID,完全贴合ACF的上下文,最靠谱:

add_filter('acf/load_field/name=funbotic_parents', 'load_funbotic_parents_field', 10, 2);
function load_funbotic_parents_field($field, $post_id) {
    // 验证是否是用户页面的ID格式
    if (str_starts_with($post_id, 'user_')) {
        $edited_user_id = absint(str_replace('user_', '', $post_id));
        if ($edited_user_id) {
            // 在这里编写你的业务逻辑,比如加载可选的父用户列表
            // $field['choices'] = get_available_parents($edited_user_id);
        }
    }
    return $field;
}

方案2:调用WordPress全局变量$user_id

在用户编辑页面(user-edit.php),WordPress会自动初始化全局的$user_id变量,直接调用就能拿到被编辑用户的ID:

add_filter('acf/load_field/name=funbotic_parents', 'load_funbotic_parents_field');
function load_funbotic_parents_field($field) {
    global $user_id;
    if ($user_id) {
        // 用$user_id做你需要的操作
    }
    return $field;
}

方案3:通过get_current_screen()安全获取请求参数

如果担心全局变量的可靠性,可以先确认当前页面是用户编辑页,再用$_REQUEST获取参数(兼容GET/POST场景):

add_filter('acf/load_field/name=funbotic_parents', 'load_funbotic_parents_field');
function load_funbotic_parents_field($field) {
    $screen = get_current_screen();
    // 确认当前处于用户编辑页面
    if ($screen->base === 'user-edit') {
        $edited_user_id = absint($_REQUEST['user_id']);
        if ($edited_user_id) {
            // 执行你的逻辑
        }
    }
    return $field;
}

至于你原来的$_GET['user_id']返回null的原因,可能是:

  • 钩子执行时机早于WordPress解析$_GET参数的节点(这种情况比较少见)
  • 服务器或安全插件过滤了$_GET参数
  • WordPress内部重写请求时暂时隐藏了$_GET参数

上面的方案都能避开这些问题,优先试试方案1,完全基于ACF的钩子上下文,最稳定。

内容的提问来源于stack exchange,提问作者Alexander LaBrie

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:59:54