【问题标题】:Incremental counter with ACF repeater and PHP reset_rows带有 ACF 中继器和 PHP reset_rows 的增量计数器
【发布时间】:2019-11-19 04:21:09
【问题描述】:

我正在尝试使用高级自定义字段中继器来增加计数器,但我还使用reset_rows() 重新执行循环以从 ACF 获取更多内容。我可以让其中一个工作,但是当我尝试执行第二个 while 循环时,它会出现 0。

这是我目前正在做的事情:

  <?php if (have_rows('projects')) : $project_counter = 0; ?>
  <?php while (have_rows('projects')): the_row(); ?>
<div>
<a href="#project-<?php echo $project_counter; ?>" class="project-link">Link to project</a>
</div>
<?php project_counter++; endwhile;?>

<?php reset_rows();?>


 <?php while (have_rows('projects')): the_row(); $project_counter = 0; ?>
<div id="project-<?php echo $project_counter; ?>">
<p>Project Content</p>
</div>
<?php $project_counter++; endwhile;?>
<?php endif;?>

我认为我被挂断的地方是我不确定reset_rows 之后的第二个增量应该去哪里,因为我知道它是在前面的 if 语句中定义的。

总的来说,我试图让它呈现为:

<div>
<a href="#project-0" class="project-link">Link to project</a>
</div>
<div>
<a href="#project-1" class="project-link">Link to project</a>
</div>
<div>
<a href="#project-2" class="project-link">Link to project</a>
</div>

<div id="project-0">
    <p>Project Content</p>
    </div>
<div id="project-1">
    <p>Project Content</p>
    </div>
<div id="project-2">
    <p>Project Content</p>
    </div>

【问题讨论】:

    标签: php wordpress while-loop advanced-custom-fields


    【解决方案1】:

    在您的第二个循环中,您将在每个“while”开始时将 $project_counter 重置为 0,因此它只会递增到 1,并且每次删除它时都会设置回 0,我认为您的代码应该运行。

    这个

    <?php while (have_rows('projects')): the_row(); $project_counter = 0; ?>
    

    到这里

    <?php $project_counter = 0;
    while (have_rows('projects')): the_row(); ?>
    

    【讨论】:

      【解决方案2】:

      要重置第二部分中的计数器,请将其放在 while 循环之前,例如;

      <?php $project_counter = 0; while (have_rows('projects')): the_row(); ?>
      

      【讨论】:

        猜你喜欢
        • 2016-05-01
        • 2015-02-17
        • 2020-06-19
        • 2022-01-24
        • 2011-06-19
        • 1970-01-01
        • 1970-01-01
        • 2020-06-14
        • 1970-01-01
        相关资源
        最近更新 更多