如何用WP_Query查询含子分类法curso的自定义文章类型?
查询带有
curso子分类的自定义文章类型 要精准查询属于casa_unifamiliar分类法下curso子分类的文章,你需要在WP_Query中借助tax_query参数来定义分类匹配规则。下面是完整的可复用代码示例,我会逐个参数帮你拆解说明:
// 定义查询参数 $args = array( 'post_type' => 'tu_tipo_articulo', // 替换成你的自定义文章类型名称 'posts_per_page' => 10, // 按需调整显示数量,-1表示显示所有匹配文章 'tax_query' => array( array( 'taxonomy' => 'casa_unifamiliar', // 指定目标分类法 'field' => 'slug', // 用分类别名(slug)匹配,也可改为'id'用ID匹配 'terms' => 'curso', // 要匹配的子分类别名 'include_children' => false, // 可选:设为true会包含该分类的子分类文章,false则只匹配自身 ), ), ); // 初始化查询 $custom_query = new WP_Query( $args ); // 循环输出匹配的文章 if ( $custom_query->have_posts() ) { while ( $custom_query->have_posts() ) { $custom_query->the_post(); // 这里编写文章内容的输出逻辑,比如标题、链接、摘要等 echo '<article>'; echo '<h2><a href="' . get_permalink() . '">' . get_the_title() . '</a></h2>'; echo '<div class="excerpt">' . get_the_excerpt() . '</div>'; echo '</article>'; } // 重置查询,避免影响后续全局文章数据 wp_reset_postdata(); } else { // 无匹配文章时的提示 echo '<p>No se encontraron artículos asociados a la categoría "curso".</p>'; }
关键参数说明:
post_type:务必替换成你实际创建的自定义文章类型名称,比如如果你的文章类型叫propiedad,就填'propiedad'。tax_query:这是WordPress处理分类法查询的核心参数,每个子数组对应一条分类规则:taxonomy:明确指定要查询的分类法,这里就是你创建的casa_unifamiliar。field:决定匹配分类的方式,用slug更直观(对应分类的URL别名),用id则需要传入分类的数字ID。terms:目标子分类的标识,这里就是curso的slug或ID。include_children:可选开关,如果需要包含curso下的孙分类文章,就设为true;只想严格匹配curso本身的文章,设为false即可。
额外提示:
- 确认
curso确实是casa_unifamiliar的子分类,且slug拼写完全正确(WordPress的slug区分大小写)。 - 如果需要同时匹配多个分类,可以把
terms改成数组形式,比如'terms' => array('curso', 'finalizada'),再通过operator参数调整匹配逻辑(默认IN是匹配任意一个,AND是同时匹配所有)。
内容的提问来源于stack exchange,提问作者Sergi
相关产品推荐
相关产品推荐

