带有meta_value数组值的get_users返回空数组

时间:2018-04-11 12:29:01

标签: arrays wordpress meta-key

我尝试查询保存在meta_key(training_event_attending)中的当前帖子ID的WP用户,其中包含一系列值。

当我对当前用户 training_event_attending 执行 print_r 时,其中10,11和12是保存给用户的正确帖子ID,我得到:

$training_event_attending) = get_user_meta($current_user->ID, 'training_event_attending', TRUE);
print_r($training_event_attending); 
//Shows Array ( [0] => 10 [1] => 11 [2] => 12 ) 

现在,如果我在ID为10的帖子上,我想查询匹配此帖子ID(10)的 training_event_attending 的所有用户。这是我的问题:

$event_id = get_the_id();   
$user_args = array(
    'meta_query'   => array(
        array(
            'key' => 'training_event_attending',
            'value' => array($event_id),
            'compare' => 'IN',
           ),
        )
 ); 
$assigned_users = get_users( $user_args );

print_r($assigned_users); 
//shows an empty array. 

我还尝试序列化并使用了“LIKE'像这样比较:

value => serialize(array($event_id)),

返回相同的用户但重复3次。

我做错了什么?你能指点我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

好的,所以我找到了感兴趣的人的解决方案:

$event_id = get_the_id();
$user_args = array(
    'meta_query'   => array(
        array(
            'key' => 'training_event_attending',
            'value' => serialize($event_id),
            'compare' => 'LIKE',
           ),
        )
    ); 
$assigned_users = new WP_User_Query( $user_args );