具有多个术语的 Wordpress 循环税务查询
Wordpress Loop Tax Query with multiple terms
我有一个名为 "fachbereiche" 的分类法。首先我加载当前页面的分类法:
<?php $term_list = wp_get_post_terms($post->ID, 'fachbereiche', array("fields" => "all", 'parent' => '0'));
foreach($term_list as $thisslug)
{
$output = $thisslug->slug;
echo $output;
?>
当前页面包含分类标签:"bauelemente" 和 "baumarkt"。 echo $output
returns bauelementebaumarkt
.
现在我想找到自定义 post 类型 "marken" 的所有 post 与我们在上面得到的相同的分类法("bauelemente" 和 "baumarkt"), 所以我加载了以下查询:
<?php
$loop = new WP_Query(
array(
'post_type' => 'marken',
'post_status'=>'publish',
'posts_per_page'=>-1,
'orderby'=> 'title',
'order'=>'ASC',
'tax_query' => array(
array(
'taxonomy' => 'fachbereiche',
'field' => 'slug',
'terms' => array($output)
),
),
)
);
}
?>
查询 returns 只有 post 具有 "baumarkt" 的分类。我想是因为变量$output
returnsbauelementebaumarkt
。我认为您必须将 "bauelemente" 和 "baumarkt" 分开。请记住,可以有 2 个以上的术语,也可以只有 1 个。
你的 $output 应该是一个数组而不是字符串,所以在 foreach 之前添加:
$output = array();
然后在 foreach 中你应该这样做:
$output[] = $thisslug->slug;
最后在 tax_query 中应该是这样的:
'terms' => $output,
我有一个名为 "fachbereiche" 的分类法。首先我加载当前页面的分类法:
<?php $term_list = wp_get_post_terms($post->ID, 'fachbereiche', array("fields" => "all", 'parent' => '0'));
foreach($term_list as $thisslug)
{
$output = $thisslug->slug;
echo $output;
?>
当前页面包含分类标签:"bauelemente" 和 "baumarkt"。 echo $output
returns bauelementebaumarkt
.
现在我想找到自定义 post 类型 "marken" 的所有 post 与我们在上面得到的相同的分类法("bauelemente" 和 "baumarkt"), 所以我加载了以下查询:
<?php
$loop = new WP_Query(
array(
'post_type' => 'marken',
'post_status'=>'publish',
'posts_per_page'=>-1,
'orderby'=> 'title',
'order'=>'ASC',
'tax_query' => array(
array(
'taxonomy' => 'fachbereiche',
'field' => 'slug',
'terms' => array($output)
),
),
)
);
}
?>
查询 returns 只有 post 具有 "baumarkt" 的分类。我想是因为变量$output
returnsbauelementebaumarkt
。我认为您必须将 "bauelemente" 和 "baumarkt" 分开。请记住,可以有 2 个以上的术语,也可以只有 1 个。
你的 $output 应该是一个数组而不是字符串,所以在 foreach 之前添加:
$output = array();
然后在 foreach 中你应该这样做:
$output[] = $thisslug->slug;
最后在 tax_query 中应该是这样的:
'terms' => $output,