首先,您应该使用WP_Query vs query\\u帖子。
看看Taxonomy Parameters.
主要地tax_query
和relation
.
// Repost from link above
$args = array(
\'post_type\' => \'post\',
\'tax_query\' => array(
\'relation\' => \'AND\',
array(
\'taxonomy\' => \'movie_genre\',
\'field\' => \'slug\',
\'terms\' => array( \'action\', \'comedy\' )
),
array(
\'taxonomy\' => \'actor\',
\'field\' => \'id\',
\'terms\' => array( 103, 115, 206 ),
\'operator\' => \'NOT IN\'
)
)
);
或者,如果您希望在循环中声明它,请查看array_key_exists. 您可以再次运行循环,但这次请检查每个帖子中是否有匹配的术语罢工>// NO LONGER WORKS, WORDPRESS HAS CHANGED THE ARRAY STRUCTURE OF get_the_terms() -- OCT 2015
/* if( array_key_exists( 111, get_the_terms($post->ID,\'age\') ) && array_key_exists( 222, get_the_terms($post->ID,\'city\') ) ) {
// output the post
} */
或者,如果您已经准备加载页面上的每一篇文章,您可以在jQuery中完成这一切(例如)。您可以输出
data
每个帖子的属性,包含它们标记的术语。
<!-- For example // Where 111 and 222 refers to the term id -->
<div class="person" data-age="id111" data-city="id222"></div>
然后简单地
.hide()
与要筛选的选定术语不匹配的术语。