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

如何获取Insert PHP Code Snippet短代码参数供ACF repeater调用

WordPress短代码参数传递实现方案

你使用的XYZ Insert Code Snippet插件会自动把短代码挂载的自定义属性注入到代码片段内的$atts变量中,按以下步骤修改即可实现动态传参判断:

  1. 在代码片段最顶部添加参数提取逻辑,设置默认值做容错,避免漏写参数时报错
  2. 将原有固定值的判断条件替换为提取到的动态参数,建议统一两边值的类型避免判断失效

修改后的完整代码如下:

<?php
// 提取短代码传入参数,未传paramSet时默认匹配值为1
$shortcode_args = shortcode_atts([
    'paramSet' => 1
], $atts);
// 统一转为整数类型,匹配ACF数字字段存储格式
$target_num = intval($shortcode_args['paramSet']);
?>
<?php if( have_rows('information') ): ?>
   <?php while( have_rows('information') ): the_row(); ?>
      <?php $sub_value = get_sub_field('number'); 
         if(intval($sub_value) == $target_num): ?>
            <div class="d-block d-md-flex d-lg-flex">
               <img src="<?php the_sub_field('image'); ?>">
                  <div>
                     <?php if( have_rows('repeatable_content') ): ?>
                        <?php while( have_rows('repeatable_content') ): the_row(); ?>
                           <p>
                              <?php the_sub_field('text'); ?>
                           </p>
                        <?php endwhile; ?>
                    <?php endif; ?>
                </div>
            </div>
        <?php endif; ?>
    <?php endwhile; ?>
<?php endif; ?>

注意事项

  • 代码修改完成后,只需在页面插入短代码时调整paramSet的属性值,即可输出对应number字段匹配的内容,例如传入paramSet="3"就会自动匹配number值为3的条目
  • 如果你使用的ACFnumber字段存储的是字符串格式内容,删除代码中两处intval()类型转换逻辑,直接做值比较即可
  • 不要删除默认值配置,否则短代码漏传paramSet参数时会触发PHP未定义变量警告

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 10:12:22