2014-11-04 67 views
0

我有,我想一箇中繼器來改變基於有多少場出來放如果WordPress的中繼器已經1場,2場等其他

的代碼我有基本的repater:

<?php // REAPEATER FIELD 
if(get_field('whatever')): ?> 
    <?php while(has_sub_field('whatever')): ?> 

    <div class="whatever_block"> 
     <?php the_sub_field('anything'); ?> 
    </div> 

    <?php endwhile; ?> 
<?php endif; ?> 

我多麼希望它看起來:

<?php // REAPEATER FIELD 
if(get_field('whatever')): ?> 
    <?php while(has_sub_field('whatever')): ?> 

    //if only one 
    <div class="col-sm-12"> 
     <?php the_sub_field('anything'); ?> 
    </div> 

    //if only two 
    <div class="col-sm-6"> 
     <?php the_sub_field('anything'); ?> 
    </div> 

    //if etc 

    //else 
    <div class="whatever_block"> 
     <?php the_sub_field('anything'); ?> 
    </div> 

    <?php endwhile; ?> 
<?php endif; ?> 

如何,我可以用if語句實現上述上面的輸出?是如果陳述甚至正確的方式去?

+0

什麼是你的問題? – Celeo 2014-11-04 18:26:42

+0

@Celeo,我只是在評論時更新我的​​問題。我試圖實現第二個版本(我希望它看起來如何)。所以我在用一個if語句思考,我會根據有多少物品來改變即將輸出的類。這是否更有意義? – RMH 2014-11-04 18:32:22

+0

是否有可以一次激活的最大數量的字段?像ACF一樣,你是否設置了最大數量? – Joe 2014-11-04 18:38:22

回答

2

好吧,這使用count()函數來計算字段,然後使用一個開關的情況下設置一個類的DIV,像這樣:

<?php // REAPEATER FIELD 
if(get_field('whatever')): ?> 
    <?php switch(count(get_field('whatever'))) : //checks total fields set 
     case '1': 
      $divClass = 'oneField'; 
      break; 
     case '2': 
      $divClass = 'twoField'; 
      break; 
     case '3': 
      $divClass = 'threeField'; 
      break; 
     case '4': 
      $divClass = 'fourField'; 
      break; 
    endswitch; ?> 
    <?php while(has_sub_field('whatever')): ?> 

     <div class="<?php echo $divClass; ?>"> 
      <?php the_sub_field('anything'); ?> 
     </div> 

    <?php endwhile; ?> 
<?php endif; ?> 

只需更換「oneField」,「twoField」 ,等你想要的類名稱,你應該設置。

+0

如果您嘗試了我的答案,我發現了一些我只是在編輯中修復的小問題,所以此代碼現在應該可以工作。 – Joe 2014-11-04 18:56:02

0

你可以在轉發器上做一個count來檢查它有多少個子字段。下面是使用ACF V4.XX have_rows syntax溶液(仍應以get_field工作以及):

if(have_rows('parent_whatever')) { 
    $posts_no = get_field('parent_whatever'); 
    while(have_rows('parent_whatever') { 
     the_row(); 
     $class = "col-sm-" . 12/$posts_no; 

     echo '<div class="' . $class . '">'; 
     the_sub_field('whatever'); 
     echo '</div>'; 
    endwhile; 
endif; 
相關問題