2014-09-24 3 views
2

Я использую расширенные настраиваемые поля, и я хотел бы обернуть каждые 3 div в строке. Если есть четвертый div или 2 дополнительных, то они будут обернуты в их собственную строку. Так что открывайте и закрывайте строку.WordPress Advanced Custom Fields Repeater, оберните каждые 3 div в строке

В настоящее время у меня есть основной вывод, но все мои текущие попытки добавить счетчик не удались. Любая помощь была бы оценена

<?php // wrap every 3 divs in a row 

    if(get_field('triple_column_2')): ?> 

    <?php while(has_sub_field('triple_column_2')): ?> 

      <div class="col-sm-4"> 
       <?php the_sub_field('copy'); ?> 
      </div> 

     <?php endwhile; ?> 

    <?php endif; ?> 

ответ

3

Вы можете использовать это в качестве отправной точки. Я не тестировал его, поэтому в моей логике могут быть небольшие проблемы, но это поможет вам в большей части пути (если не полностью!).

if (get_field('triple_column_2')): ?> 

    <?php $index = 1; ?> 
    <?php $totalNum = count(get_field('triple_column_2')); ?> 

    <row> 
    <?php while (has_sub_field('triple_column_2')): ?> 


     <div class="col-sm-4"> 
      <?php the_sub_field('copy'); ?> 
     </div> 
     <? if ($index % 3 == 0) : ?> 
      <? if ($index < $totalNum) : ?> 
       // more rows, so close this one and start a new one 
       </row> 
       <row> 
      <? elseif ($index == $totalNum) : ?> 
       // last element so close row but don't start a new one 
       </row> 
      <? endif; ?> 

     <? endif; ?> 

    <?php $index++; ?> 
    <?php endwhile; ?> 

<?php endif; ?> 
+0

спасибо! работал как шарм – RMH

+0

только что понял, я сделал одну опечатку: elseif ($ index = $ totalNum) должен быть elseif ($ index == $ totalNum). будет обновлять ответ. – manishie