2017-05-03 64 views
1

我想知道是否有人可以幫我把兩塊代碼結合起來。我有一個塊循環,雖然項目和另一個塊顯示一個計數的開始,並希望使我能夠通過在每行中添加一個div來顯示行中循環的項目...下面是第一個代碼循環:結合PHP循環和計數 - Wordpress ACF

<?php if(get_field('areas')): ?> 



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


        <div class="single-area-item six columns"> 
         <p> <img src="<?php the_sub_field('area_icon'); ?>" style="width:100%;"> <p> 
         <h4> <?php the_sub_field('area_title'); ?> </h4> 
         <p> <?php the_sub_field('area_info'); ?> <p> 
        </div> 

       <?php endwhile; ?> 



     <?php endif; ?> 

我使用高級自定義字段的Wordpress,這是通過中繼器領域拉...這顯示他們只是一個接一個。

這裏是我發現的代碼,希望在行中顯示它們。

<?php 

$num = 1; 
foreach ($terms as $term) { 
if($num%2) { 
    echo '<div class="area-row">'; 
} 

// Other Code 

if($num %2) { 
    echo '</div>'; 
} 
$num++ 
} 

?> 

我想在兩排,以顯示他們...

ONE TWO 三四 五六

等...

所以,林猜我需要以某種方式組合代碼...我目前有這樣的:但它似乎並沒有工作:

<?php 

$num = 1; 
foreach ($terms as $term) { 
if($num%2) { 
    echo '<div class="area-row">'; 
} 

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



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


        <div class="single-area-item six columns"> 
         <p> <img src="<?php the_sub_field('area_icon'); ?>" style="width:100%;"> <p> 
         <h4> <?php the_sub_field('area_title'); ?> </h4> 
         <p> <?php the_sub_field('area_info'); ?> <p> 
        </div> 

       <?php endwhile; ?> 



     <?php endif; ?> 

if($num %2) { 
    echo '</div>'; 
} 
$num++ 
} 

?> 
+0

當你說它似乎不工作時,你是什麼意思?你實際得到的輸出是什麼? –

+0

嗨@ben我沒有得到任何輸出恐怕,當我嘗試代碼該網站只是不加載,並顯示一個白色的空白頁。 –

+0

這是整個模板文件嗎? –

回答

1

好吧,看起來好像有幾個簡單的問題,你在if語句之後關閉了php標籤,然後繼續編寫php而不重新打開php標籤。 if($ num%2)語句也存在一個輕微的邏輯錯誤,因爲其中一個需要是,另一個需要,如果不是,那麼備用。

給這個代碼一個嘗試,讓我知道你上車:

<?php 
if(get_field('areas')): 
    $num = 1;  
?> 
     <?php while(has_sub_field('areas')): 
     if($num%2) { 
      echo '<div class="area-row">'; 
     } ?> 

      <div class="single-area-item six columns"> 
       <p> <img src="<?php the_sub_field('area_icon'); ?>" style="width:100%;"> <p> 
       <h4> <?php the_sub_field('area_title'); ?> </h4> 
       <p> <?php the_sub_field('area_info'); ?> <p> 
      </div> 
      <?php 
      if(!$num%2) { 
       echo '</div>'; 
      } 
      $num++ 
     endwhile; ?> 
    <?php endif; ?> 
+0

非常感謝這個@Ben,但它似乎也不工作 - 再次我得到一個空白加載時頁面...這是否意味着某處丟失了結束標籤? –

+0

林不知道如果它是最好的方式,但我已經設法使用 –

+0

第n孩子元素工作! ..... single-area-item:n-child(3n + 3){margin:left-left:0; } –

0

後面這個問題的主要原因是對我來說,能夠針對的循環,通過項目,作爲第三個項目是有填充它打破了我需要刪除的行。

我從那以後發現了另一個似乎正在工作的解決方案。

通過使用第n個子元素,我能夠定位並移除每個循環的第三個項目的填充 - 修復問題。

.single-area-item:nth-child(3n+3) { 
    margin-left: 0; 
} 

這是行或2項,如果它是3或4那就需要分別針對每一個第四或第五項行。