如果要查询多个分类术语,可以使用更高级的,tax_query
WP\\u查询的参数。比如说
//Get array of terms
$terms = get_the_terms( $post->ID , \'product_tags\', \'string\');
//Pluck out the IDs to get an array of IDS
$term_ids = wp_list_pluck($terms,\'term_id\');
//Query posts with tax_query. Choose in \'IN\' if want to query posts with any of the terms
//Chose \'AND\' if you want to query for posts with all terms
$second_query = new WP_Query( array(
\'post_type\' => \'products\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'product_tags\',
\'field\' => \'id\',
\'terms\' => $term_ids,
\'operator\'=> \'IN\' //Or \'AND\' or \'NOT IN\'
)),
\'posts_per_page\' => 3,
\'ignore_sticky_posts\' => 1,
\'orderby\' => \'rand\',
\'post__not_in\'=>array($post->ID)
) );
//Loop through posts and display...
if($second_query->have_posts()) {
while ($second_query->have_posts() ) : $second_query->the_post(); ?>
<div class="single_related">
<?php if (has_post_thumbnail()) { ?>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"> <?php the_post_thumbnail( \'related_sm\', array(\'alt\' => get_the_title()) ); ?> </a>
<?php } else { ?>
<a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a>
<?php } ?>
</div>
<?php endwhile; wp_reset_query();
}
Note: 这似乎是一个“二级循环”,即不是“主”循环(显示帖子/单个帖子)。如果是这样,你不应该被使用
query_posts
. 看到这个了吗
excellent question.