我不确定是否可以直接查询这些术语,因此我将为您编写一个解决方法。
这个WP_Query();
接受名为terms
. 可以将术语ID作为数组传递给此参数。
让我们首先获取第一个分类中的术语列表,然后根据这些术语进行查询:
$terms = get_terms(
array(
\'taxonomy\' => \'custom_tax1\',
\'hide_empty\' => false,
\'fields\' => \'ids\', // We only need the IDs
)
);
// Now do a query
$args = array(
\'tax_query\' => array(
array(
\'taxonomy\' => \'custom_tax2\',
\'field\' => \'slug\',
\'terms\' => $terms,
),
),
);
$my_query = new WP_Query( $args );
这将查询来自
custom_tax2
有以下任何条款
custom_tax1
. 现在您已经有了包含这些术语的帖子,您可以继续从中提取术语。
让我们更进一步地解决这个问题:
if($my_query->have_posts()){
// Define an empty array to use later
$post_terms = array();
while($my_query->have_posts()){
$my_query->the_post();
// Merge the previous terms with the new ones
$new_terms = wp_get_post_terms( get_the_ID(), \'custom_tax1\');
$post_terms = array_merge( $post_terms, $new_terms );
}
}
下面是发生的事情。
我们在所有属于custom_tax2
具有以下术语的分类法custom_tax2
分类法我们得到循环中每个帖子的术语在循环的每个步骤中,我们将当前术语与前一篇帖子的术语合并,因此我们最终得到每个帖子的术语数组