所以我在这里有这个代码,尝试了不同的方法,但它只会加载$ taxterm的最后一次迭代,用于'术语' => $ taxterm。有什么想法为什么这样做?
foreach($term_tags as $term) {
$taxterm = array();
$taxterm[] = $term->slug;
}
$args = array(
'post_type' => 'cp_recipe',
'orderby' => 'title',
'order' => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'cp_recipe_tags',
'field' => 'slug',
'terms' => $taxterm
),
),
);
谢谢, 卡尔
答案 0 :(得分:1)
在$taxterm = array();
循环之外取foreach
行,如下所示:
$taxterm = array();
foreach($term_tags as $term) {
$taxterm[] = $term->slug;
}
当在foreach循环中声明数组时,它会在每次迭代时重新声明,即每次重置为空数组。在外部声明时,它不会重置,但会在每次迭代时填充。
您可以在此处阅读有关PHP中变量作用域的更多信息:http://php.net/manual/en/language.variables.scope.php