如何在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
相关产品推荐
相关产品推荐

