Инкрементный счетчик с повторителем ACF и PHP reset_rows - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь увеличить счетчик с помощью повторителя Advanced Custom Field, но я также использую 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>

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Во втором цикле вы сбрасываете $ 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(); ?>
0 голосов
/ 09 июля 2019

Для сброса счетчика во втором разделе поместите его перед циклом while, например;

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