我试图创建一个函数来处理显示产品的多个分类要求。我警告你这是一个很长的帖子,因为我已经展示了一些没有奏效的解决方案的思路迭代。PHP的WordPress的税收查询:在WP_Query数组内的循环信息(更新)
http://cheekymonkeymedia.ca/blog/using-wordpress-query-multiple-taxonomies#sthash.h7ZyhyGn.dpuf
上面的链接,我想我的代码全能机型基本样本。
我使用这个方向,因为我有自定义职位,有自定义分类。除了我已经采取了数组的值,并希望按照用户的要求生成它们。
像这样的一个数组被传递给函数来发布帖子的请求。
$requirements = array(
array(
'taxonomy' =>'category',
'term' =>'cheese'
),
array(
'taxonomy' =>'dairy',
'term' =>'yogurt'
),
);
我试图使用这样的,但你不能在一个数组内foreach。这在逻辑上是如何查看解决方案的。即使我知道这是错的。
function query_mult_tax($array){
$myquery['tax_query'] = array(
'relation' => 'OR',
foreach($array as $param){
array(
'taxonomy' => $param["taxonomy"],
'terms' => $param["term"],
'field' => 'slug',
);
}
);
query_posts($myquery);}
一些修修补补之后,我发现我可以做的foreach阵列之外,而是要通过信息的唯一途径是在数组中。然而,当前函数总是将查询写入不需要的数组中,从而扭曲所需的信息。这使我陷入了困境,因为我不知道如何逃避父数组中不需要的数组(因为我无法循环)。
function fruit_query_mult_tax($array){
wp_reset_query();
//create the basic query
$query = array('post_type' => 'fruit',
'tax_query' => array()
);
// create the arrays
foreach($array as $param){
$args[]= array(
'taxonomy' => $param["taxonomy"],
'terms' => $param["term"],
'field' => 'slug',
'operator' => "IN",
);
}
$query['tax_query'] = array(
'relation' => 'OR',
$args
);
$result = new WP_Query($query);
return $result;
}
查询的具有挑战性的部分转储看起来像这样:
[tax_query] => Array
(
[relation] => OR
[0] => Array
(
[0] => Array
(
[taxonomy] => category
[terms] => cheese
[field] => slug
[operator] => IN
)
[1] => Array
(
[taxonomy] => dairy
[terms] => yogurt
[field] => slug
[operator] => IN
)
)
)
取而代之的是这是什么工作。
[tax_query] => Array
(
[relation] => AND
[0] => Array
(
[taxonomy] => category
[terms] => cheese
[field] => slug
[operator] => IN
)
[1] => Array
(
[taxonomy] => dariy
[terms] => yogurt
[field] => slug
[operator] => IN
)
)
这是非常接近,除了包裹,它是包装在一个数组中。我如何逃避或格式化?我不能这样做foreach因为我在父数组。我试过$args[0]
,它只给我第一套可能很多的规则。