如何在WooCommerce归档页获取当前分类及指定分类下的产品
WooCommerce自定义归档模板同时展示指定分类与当前分类产品的实现方法
核心实现逻辑:在WooCommerce产品分类归档页中,使用get_queried_object()即可直接获取当前页对应的产品分类对象,提取分类slug后和你指定的categoryx合并到查询参数即可。
注意事项
- 代码默认仅在产品分类归档页生效,若需要兼容其他页面场景可自行添加判断条件
product_cat参数传入数组时,默认查询属于任意一个分类的产品,符合同时展示两类产品的需求- 自定义WP_Query查询后建议使用
wp_reset_postdata()重置文章数据,比wp_reset_query()更规范
修改后完整代码
<?php // 仅在产品分类归档页生效的判断,不需要可删除 if (is_tax('product_cat')) { // 获取当前归档页对应的产品分类对象 $current_cat = get_queried_object(); $current_cat_slug = $current_cat->slug; } else { // 非产品分类页可自定义默认分类,不需要可留空 $current_cat_slug = ''; } $args = array( 'post_type' => 'product', 'posts_per_page' => 3, // 合并当前分类和指定分类slug,同时查询两类产品 'product_cat' => array('categoryx', $current_cat_slug) ); $loop = new WP_Query( $args ); while ( $loop->have_posts() ) : $loop->the_post(); global $product; echo 'Add Some Stuff Here to Do Something'; endwhile; // 重置文章数据,避免影响页面默认查询 wp_reset_postdata(); ?>
如果需要查询同时属于两个分类的产品,可替换为tax_query参数设置关系为AND即可
内容的提问来源于stack exchange,提问作者Sean O'Brien
相关产品推荐
相关产品推荐

