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

WordPress中如何用PHP获取关联指定taxonomy的用户ID列表

解决方案

方法1:使用get_objects_in_term实现(符合你期望的写法)

该函数是WordPress原生用于查询指定分类项关联对象的工具,代码示例如下:

// 三个参数分别为:目标term_taxonomy_id、自定义用户分类法别名、指定对象类型为用户
$related_user_ids = get_objects_in_term( 1186, '替换为你的用户分类法别名', [ 'object_type' => 'user' ] );

// 过滤掉用户状态异常的账号,和你SQL中的user_status=0条件对应
$valid_user_ids = [];
foreach ( $related_user_ids as $uid ) {
    $user = get_user_by( 'id', $uid );
    if ( $user && $user->user_status === 0 ) {
        $valid_user_ids[] = $uid;
    }
}

最终$valid_user_ids就是符合条件的用户ID数组。

方法2:使用WP_User_Query实现(更简洁,无需二次过滤)

直接通过用户查询类的分类查询参数实现,底层自动完成关联表拼接和条件过滤,和你写的SQL效果完全一致:

$user_query = new WP_User_Query( [
    'tax_query' => [
        [
            'taxonomy' => '替换为你的用户分类法别名',
            'field'    => 'term_taxonomy_id', // 指定按term_taxonomy_id匹配
            'terms'    => 1186,
        ]
    ],
    'user_status' => 0, // 直接过滤正常状态用户
    'fields'      => 'ID', // 仅返回用户ID,优化查询性能
] );

$user_ids = $user_query->get_results();

注意事项

  • 所有代码中的替换为你的用户分类法别名需要修改为你注册用户分类时register_taxonomy函数传入的第一个参数值。
  • 如果你确认该用户分类下关联的所有用户都是正常状态,方法1可以省略二次过滤的步骤直接使用get_objects_in_term的返回结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:15:03