You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Woocommerce wc_get_loop_prop商品循环中仅展示指定分类商品

你可以直接将模板中原有的商品循环代码整体替换为以下实现,全程使用wc_get_products完成查询,完全兼容原有模板的样式、钩子和交互逻辑:

// 读取当前分页参数
$paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
// 构造查询参数
$product_query_args = [
    'status'        => 'publish',
    'category_id'   => [12, 345, 7899], // 此处修改为你需要的分类ID数组
    'limit'         => get_option( 'posts_per_page' ), // 与后台设置的商品每页展示数量同步,也可自定义数值
    'paged'         => $paged,
    'orderby'       => isset( $_GET['orderby'] ) ? wc_clean( $_GET['orderby'] ) : 'date',
    'order'         => isset( $_GET['order'] ) ? wc_clean( $_GET['order'] ) : 'DESC',
];

// 官方推荐方式查询商品
$target_products = wc_get_products( $product_query_args );

// 配置WooCommerce循环全局属性,兼容原有排序、结果计数等功能
$total_products = count( wc_get_products( array_merge( $product_query_args, ['limit' => -1, 'return' => 'ids'] ) ) );
wc_set_loop_prop( 'total', $total_products );
wc_set_loop_prop( 'total_pages', ceil( $total_products / get_option( 'posts_per_page' ) ) );

if ( ! empty( $target_products ) ) {
    /**
     * Hook: woocommerce_before_shop_loop.
     *
     * @hooked woocommerce_output_all_notices - 10
     * @hooked woocommerce_result_count - 20
     * @hooked woocommerce_catalog_ordering - 30
     */
    do_action( 'woocommerce_before_shop_loop' );

    woocommerce_product_loop_start();

    global $post;
    foreach ( $target_products as $product ) {
        // 注入产品数据到全局上下文,兼容默认商品卡片模板
        $post = get_post( $product->get_id() );
        setup_postdata( $post );

        /**
         * Hook: woocommerce_shop_loop.
         */
        do_action( 'woocommerce_shop_loop' );

        wc_get_template_part( 'content', 'product' );
    }

    // 重置全局文章数据,避免冲突
    wp_reset_postdata();

    woocommerce_product_loop_end();

    // 输出默认分页、相关底部钩子
    do_action( 'woocommerce_after_shop_loop' );
} else {
    // 无匹配商品时输出默认提示
    do_action( 'woocommerce_no_products_found' );
}

核心说明

  • category_id是wc_get_products原生支持的参数,直接传入分类ID数组即可实现筛选,无需手动编写 tax_query,完全符合官方开发规范
  • 保留了原有模板的所有WooCommerce原生钩子,不需要额外调整主题样式、排序规则、商品卡片布局
  • 自动适配分页、前台排序功能,和默认WooCommerce商店页使用体验完全一致
  • 全程未使用WP_Query,兼容后续WooCommerce自定义表结构升级,不会出现版本兼容问题

内容的提问来源于stack exchange,提问作者user5853892

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 21:06:06