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

如何获取WooCommerce指定分类下的10个产品?求对应代码

获取WooCommerce指定分类下的10个产品

嘿,刚好我熟悉WooCommerce和WordPress的查询逻辑,这就给你一套和你现有文章列表代码风格完全匹配的方案!

方案1:和你现有代码结构一致的get_posts写法

这个版本和你用来获取文章的代码几乎一模一样,只是调整了查询类型和分类筛选规则:

<?php
// 替换这里的分类ID或slug为你的目标产品分类
$products = get_posts( array(
    'post_type'      => 'product', // 指定查询WooCommerce产品
    'numberposts'    => 10,        // 要获取的产品数量
    'orderby'        => 'date',    // 按发布日期排序
    'order'          => 'DESC',    // 最新的在前
    'tax_query'      => array(
        array(
            'taxonomy' => 'product_cat', // WooCommerce产品分类的 taxonomy
            'field'    => 'term_id',     // 用分类ID筛选,也可以改成'slug'用别名筛选
            'terms'    => 12,            // 替换成你的产品分类ID,比如用slug的话改成'your-category-slug'
        ),
    ),
) );

if ( $products ) : ?>
    <ul>
        <?php foreach ( $products as $post ) : setup_postdata( $post ); ?>
            <li>
                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                    <i class="circle"></i><?php the_title(); ?>
                    <!-- 可选:添加产品价格显示,去掉注释即可 -->
                    <!-- <span class="product-price"><?php echo wc_price( get_post_meta( get_the_ID(), '_regular_price', true ) ); ?></span> -->
                </a>
            </li>
        <?php endforeach; ?>
    </ul>
    <?php wp_reset_postdata(); // 必须重置,避免影响页面其他内容 ?>
<?php endif; ?>

方案2:更灵活的WP_Query写法

如果你之后需要扩展功能(比如分页、筛选更多条件),WP_Query会更方便,逻辑和上面一致,但写法略有不同:

<?php
$args = array(
    'post_type'      => 'product',
    'posts_per_page' => 10,
    'orderby'        => 'date',
    'order'          => 'DESC',
    'tax_query'      => array(
        array(
            'taxonomy' => 'product_cat',
            'field'    => 'term_id',
            'terms'    => 12,
        ),
    ),
);

$products_query = new WP_Query( $args );

if ( $products_query->have_posts() ) : ?>
    <ul>
        <?php while ( $products_query->have_posts() ) : $products_query->the_post(); ?>
            <li>
                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>">
                    <i class="circle"></i><?php the_title(); ?>
                </a>
            </li>
        <?php endwhile; ?>
    </ul>
    <?php wp_reset_postdata(); ?>
<?php endif; ?>

关键参数说明

  • post_type => 'product':告诉WordPress我们要查询的是WooCommerce的产品类型,而不是普通文章
  • tax_query:专门用来筛选自定义分类法(这里是WooCommerce的产品分类product_cat),你可以根据需求选择用分类ID或slug来定位
  • wp_reset_postdata():一定要加上,它会重置全局的$post变量,避免和页面其他内容的查询冲突

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:31:27