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

如何在首页调用WooCommerce商品分类图片及标题生成分类卡片

实现方案

1. 原有代码问题修正

你现有的查询参数存在错误,查询WooCommerce商品分类需要调整参数,同时改用更规范的get_terms方法获取分类数据。

2. 分类图片获取逻辑

WooCommerce后台设置的商品分类图片ID会存储在分类的thumbnail_id元字段中,通过get_term_meta读取该字段后,即可调用WordPress附件方法输出图片地址。

3. 完整可运行代码

<?php
// 修正后的分类查询参数
$args = array(
    'taxonomy' => 'product_cat',
    'number' => 8, // 控制返回8个分类
    'orderby' => 'term_id', // 按创建时间倒序即最新分类在前
    'order' => 'DESC',
    'hide_empty' => false, // 可根据需求调整是否隐藏空商品分类
);
$categories = get_terms( $args );
foreach( $categories as $category ) {
    // 获取分类图片ID
    $thumbnail_id = get_term_meta( $category->term_id, 'thumbnail_id', true );
    // 生成图片地址,无图时可替换为自己站点的占位图地址
    $image_url = $thumbnail_id ? wp_get_attachment_url( $thumbnail_id ) : '你的默认占位图地址';
    // 直接获取分类跳转链接,无需手动拼接,兼容性更强
    $cat_link = get_term_link( $category, 'product_cat' );
?>
<a href="<?php echo esc_url($cat_link); ?>">
    <div class="category-tile-image">
        <img src="<?php echo esc_url($image_url); ?>" alt="<?php echo esc_attr($category->name); ?>">
    </div>
    <h2><?php echo esc_html($category->name); ?></h2>
</a>
<?php } ?>

补充说明

  • 代码中新增了esc_url、esc_attr、esc_html等转义函数,符合WordPress代码安全规范
  • 如果你需要按分类下最新商品的时间排序,可自行调整orderby参数
  • 无分类图的占位图地址可自行替换为你站点的默认图片路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:06:01