具有多个术语的 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" 的分类。我想是因为变量$outputreturnsbauelementebaumarkt。我认为您必须将 "bauelemente" 和 "baumarkt" 分开。请记住,可以有 2 个以上的术语,也可以只有 1 个。

你的 $output 应该是一个数组而不是字符串,所以在 foreach 之前添加:

$output = array();

然后在 foreach 中你应该这样做:

$output[] =  $thisslug->slug;

最后在 tax_query 中应该是这样的:

'terms' => $output,