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

如何将wpdb查询返回的关联指定taxonomy_id的用户ID转为逗号分隔字符串

解决方案:将WPDB查询结果转为逗号分隔的用户ID字符串

你已经通过wpdb拿到了包含用户ID的对象数组,要转成目标格式其实很简单,这里给你两种实用的方法:

方法一:PHP数组处理(适合需要保留ID数组的场景)

先用array_map把每个stdClass对象里的ID字段提取出来,得到纯ID数组,再用implode拼接成字符串:

// 从查询结果中提取所有用户ID到数组
$user_ids_array = array_map(function($user_obj) {
    return $user_obj->ID;
}, $result);

// 把数组转为逗号分隔的字符串
$user_ids_str = implode(',', $user_ids_array);

// 输出结果,格式就是你要的"27,50,148,..."
echo $user_ids_str;

方法二:直接在SQL中生成(更高效,一步到位)

如果不需要保留ID数组,直接修改SQL查询,用MySQL的GROUP_CONCAT函数让数据库直接返回逗号分隔的字符串,省去PHP处理步骤:

// 注意用$wpdb->prefix代替硬编码的wp_,适配不同的WordPress表前缀
$result = $wpdb->get_var( "
    SELECT GROUP_CONCAT(u.ID SEPARATOR ',') 
    FROM {$wpdb->prefix}users u 
    INNER JOIN {$wpdb->prefix}term_relationships r 
        ON u.ID = r.object_id 
    WHERE u.user_status = 0 
        AND r.term_taxonomy_id = 1186
");

// 此时$result就是直接的逗号分隔字符串,直接输出即可
echo $result;

小提示

  • 推荐用{$wpdb->prefix}代替固定的wp_,这样你的代码在更换WordPress表前缀时不会出错。
  • 如果用户ID数量特别大,GROUP_CONCAT有默认长度限制(默认1024字节),可以通过执行SET SESSION group_concat_max_len = 1000000;临时调整长度,一般场景下默认长度足够使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 22:03:13