我对php和wordpress开发非常陌生,我对这个网站也很陌生。我想通过试错来学习发展。如果我没有使用所有合适的术语,请原谅我。
我有一些代码为buddypress中的用户获取以下id。我想在循环中使用这些值并检查buddypress用户的成员类型。
我有3种成员类型,最终结果应该输出每个成员类型的用户ID数组。
下面的代码获取当前用户跟踪的成员的用户ID。
$following = bp_get_following_ids( $user_id) ;
print_r (explode(" ",$following));
上面的代码给出了一个输出,例如:数组([0]=>2,3,4,5,6,8,14)我想在用户查询中使用这个数组
$user_query = new WP_User_Query( array( \'include\' => array( 1, 2, 3 ) ) );
其中,1、2、3应为上述代码的输出。
我在下面试过了,但这似乎是错误的。
$user_query = WP_User_Query( array( \'include\' => explode(",",$following)));
如何将数组放入查询中,以便创建循环以按成员类型检查用户并输出ID?谢谢
最合适的回答,由SO网友:birgire 整理而成
这听起来像是wp_parse_id_list()
作用它将返回一个唯一ID数组,并用absint()
功能:
$csv = bp_get_following_ids();
if( 0 !== $csv ) )
{
$uids = wp_parse_id_list( $csv );
$user_query = new WP_User_Query( [ \'include\' => $uids ] );
}
我们假设
bp_get_following_ids()
成功时返回逗号分隔的用户ID字符串,失败时返回整数零。
示例
如果我们使用逗号分隔的字符串,其中包含一些“脏”值:
$csv = "1a,2!,3";
以及
$uids = wp_parse_id_list( $csv );
那么
var_dump ( $uids )
array (size=3)
0 => int 1
1 => int 2
2 => int 3
以及
print_r( $uids):
Array
(
[0] => 1
[1] => 2
[2] => 3
)