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

如何在Woocommerce商品分类页面展示ACF Repeater字段内容

WooCommerce商品分类页调取ACF Repeater字段解决方案

你的代码默认仅支持调取单篇文章/商品挂载的ACF字段,WooCommerce商品分类属于product_cat分类法,调取分类法下的自定义字段需要额外传入分类的身份标识作为ACF函数的第二个参数,同时需要匹配图片字段的返回格式取值。

解决步骤

  • 第一步:在商品分类模板中先获取当前分类对象,拿到分类ID
    对应代码:$current_cat = get_queried_object();
  • 第二步:调用have_rows和关联函数时,传入参数'term_' . $current_cat->term_id指定从当前分类下读取字段
  • 第三步:匹配ACF图片字段的返回格式取值,如果返回格式为数组,需提取其中的URL属性,不能直接输出变量

修正后完整代码

<?php
// 获取当前商品分类对象
$current_product_cat = get_queried_object();

// 传入分类参数调取repeater字段
if ( have_rows('header_img', 'term_' . $current_product_cat->term_id) ) : 
    while ( have_rows('header_img', 'term_' . $current_product_cat->term_id) ) : the_row();
        // 若image_header字段返回格式为「图片URL」保留下一行,返回格式为「图片数组」请改用注释的写法
        $cat_banner = get_sub_field('image_header');
        // $cat_banner = get_sub_field('image_header')['url'];
?>
<div class="header-img">
    <img src="<?php echo esc_url($cat_banner); ?>" alt="分类头图">
</div>
<?php endwhile; endif; ?>

补充说明:如果你的ACF字段规则是挂载在其他位置,不是直接挂在商品分类法上,只需要修改have_rows的第二个参数为对应存储位置的标识即可正常读取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:48:00