自定义文章类型Property按多分类精准筛选异常求助
解决WordPress自定义文章类型多分类同时筛选问题
你的问题出在tax_query的写法上:当前用单个条件数组搭配IN运算符,只要文章匹配任意一个指定分类就会被返回,所以两个包含house的文章都被筛选出来了。要实现同时包含Europe和house两个分类的筛选,需要把分类条件拆分为两个独立的子数组,并给tax_query设置relation为AND,强制所有分类条件必须同时满足。
修改后的完整代码如下:
$args = array( 'post_type' => 'property', 'posts_per_page' => -1, 'post_status' => 'publish', 'tax_query' => array( 'relation' => 'AND', // 强制所有分类条件同时满足 array( 'taxonomy' => 'location', 'field' => 'slug', 'terms' => 'europe', 'operator' => 'IN' // 单个term时IN和=效果一致,也可以直接写'=' ), array( 'taxonomy' => 'location', 'field' => 'slug', 'terms' => 'house', 'operator' => 'IN' ), ), 'meta_query' => array( 'relation' => 'AND', array( 'key' => 'guests', 'value' => $guests, 'compare' => 'LIKE' ), array( 'key' => 'beds', 'value' => $beds, 'compare' => 'LIKE' ), array( 'key' => 'baths', 'value' => $baths, 'compare' => 'LIKE' ) ) );
关键说明:
tax_query的relation参数默认是AND,但显式声明更清晰,避免后续修改时混淆- 每个分类单独作为一个子条件数组,确保文章必须同时属于
europe和house分类 - 如果你的分类法是层级结构(比如
Europe是父分类,house是子分类),可以改用operator => 'AND'搭配include_children参数,但这里显然是平级分类,所以拆分条件的方式最直接
内容的提问来源于stack exchange,提问作者Josep
相关产品推荐
相关产品推荐

