在WP_Query中,当选中一个复选框组时,我需要一些动态数组。
到目前为止的代码是:
$args = array(
'post_type' => 'hold',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'hold_serie',
'value' => 'serie3',
'compare' => 'LIKE'
),
array(
'relation' => 'OR',
'options' => array()
),
),
);
$days = array('man', 'tir', 'ons');
foreach ($days as $value_day) {
$args['meta_query']['options'] = array(
'key' => 'hold_day',
'value' => $value_day,
'compare' => 'LIKE'
);
}
我有一个复选框组,它将与$ days-array()组成相同的数组。 我希望实现的是,将重复执行具有'key'=>'hold_day'的数组3次,并且WP_Query将查看所有包含“ man”,“ tir”或“ on”的帖子“。
在这一点上,WP_query只接受帖子,数组中的最后一个值,在这种情况下为“ on”。 如果我删除“ ons”,则数组仅包含“ man”和“ tir”,它将仅找到帖子,其中“ hold_day” =“ tir”。
我在做什么错了?
答案 0 :(得分:0)
您无需使用代码的第二部分。 您可以使用数组作为元键的值,但是在这种情况下,您需要在compare字段中使用“ IN”。 您的代码应为
$args = array(
'post_type' => 'hold',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'hold_serie',
'value' => 'serie3',
'compare' => 'LIKE'
),
array(
'relation' => 'OR',
'key' => 'hold_day',
'value' => array('man', 'tir', 'ons'),
'compare' => 'IN'
),
),
);
尝试上面的代码,让我知道结果。 谢谢