多分类法WP_Query返回0结果问题求助
解决WP_Query多分类法查询返回0结果的问题
你的问题出在tax_query的逻辑设置错误:如果用AND关联时,错误地要求文章同时匹配week1、week2、week3-test三个标签(而非匹配其中任意一个),自然找不到符合条件的文章。以下是正确的查询写法,能精准返回你需要的3篇文章:
$args = array( 'post_type' => 'sfwd-lessons', 'posts_per_page' => 3, 'tax_query' => array( 'relation' => 'AND', // 必须同时满足两个分类法的条件 array( 'taxonomy' => 'ld_lesson_category', 'field' => 'slug', // 若使用分类ID,改为term_id即可 'terms' => 'low-seated', ), array( 'taxonomy' => 'ld_lesson_tag', 'field' => 'slug', 'terms' => array( 'week1', 'week2', 'week3-test' ), 'operator' => 'IN', // 匹配数组中任意一个标签 ), ), ); $query = new WP_Query( $args );
关键说明:
- 外层
relation => 'AND'确保文章必须同时属于ld_lesson_category的low-seated分类,以及ld_lesson_tag中的任意一个目标标签 ld_lesson_tag的terms用数组包含三个目标标签,搭配operator => 'IN',实现“匹配其中任意一个”的逻辑,这样三篇分别对应week1/week2/week3-test的文章都会被筛选出来- 确认
field参数匹配你的实际使用场景:如果用ID指定分类/标签,将slug改为term_id
排查要点:
- 检查
ld_lesson_category和ld_lesson_tag的分类法slug是否与代码一致 - 确认目标文章确实分别分配了
low-seated分类,以及对应的week1/week2/week3-test标签 - 暂时禁用其他可能修改WP_Query的插件或主题函数,排查是否有钩子干扰查询结果
内容的提问来源于stack exchange,提问作者Alex Knopp
相关产品推荐
相关产品推荐

