2014-09-24 61 views
2

我正在使用高級自定義字段,並且我想將每3個div包裝在一行中。如果有第四個div或2個額外的那麼那些將被包裝在他們自己的行中。所以打開並關閉一排。WordPress高級自定義字段中繼器,連續每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 2014-09-24 17:57:47

+0

剛剛意識到我犯了一個錯字:elseif($ index = $ totalNum)應該是elseif($ index == $ totalNum)。將更新答案。 – manishie 2014-09-24 18:38:30

相關問題