2014-05-20 108 views
0

我想列出自定義分類中的所有術語,但我想至少將它們分成3列,包括他們的孩子有一個視覺平衡。這是我迄今爲止所做的。在達到最大期限後,我一直在創建循環。就我所知,它用'ul'包裹了所有後續項目,而不是創建第二個ul並列出下一批。達到x的期限後,它應該在其中創建另一個'ul'元素列表類別。總共有3列。在特定的自定義分類中顯示多列類別

<?php 

     $get_cats = wp_list_categories('echo=0&title_li=&depth=2&hide_empty=0,&taxonomy=industries'); 
     // Split into array items 

     $cat_array = explode('</li>',$get_cats); 
     // Amount of categories (count of items in array) 
     $results_total = count($cat_array); 
     // How many categories to show per list (round up total divided by 3) 
     $cats_per_list = ceil($results_total/3); 
     // Counter number for tagging onto each list 
     $list_number = 1; 
     // Set the category result counter to zero 
     $result_number = 0; 
     ?> 

     <?php echo $cats_per_list ; ?> 

     <ul class="cat_col" id="cat-col-<?php echo $list_number; ?>"> 

     <?php 
     foreach($cat_array as $category) { 

      $result_number++; 

      if($result_number >= $cats_per_list) { 
       $list_number++; 
       echo $category.'</li> </ul> <ul class="cat_col" id="cat-col-'.$list_number.'">'; 
      } 
      else { 
       echo $category.'</li>'; 
      } 

     } 
     ?> 
     </ul>   

回答

1

該代碼是非常錯誤的。只是一對夫婦的觀察:

下一頁中你將不得不result_number重置爲0,因爲計數重新開始在

if($result_number >= $cats_per_list) { 

塊。由於$ cats_per_list被定義爲總金額的平均值,因此您當前的代碼只會遇到一次該情況。之後,它會繼續向上計數,並始終> = $ cats_per_list

下一步:它是狡猾的,但你可能不需要ceil結果,因爲你使用> =,該操作幾乎做同樣的事情,因爲1.5例如將滿足> = 1的標準。

試試這個,看看它是否是更好:

<?php 

     $get_cats = wp_list_categories('echo=0&title_li=&depth=2&hide_empty=0,&taxonomy=industries'); 
     // Split into array items 

     $cat_array = explode('</li>',$get_cats); 
     // Amount of categories (count of items in array) 
     $results_total = count($cat_array); 
     // How many categories to show per list (round up total divided by 3) 
     $cats_per_list = ceil($results_total/3); 
     // Counter number for tagging onto each list 
     $list_number = 1; 
     // Set the category result counter to zero 
     $result_number = 0; 
     ?> 

     <?php echo $cats_per_list ; ?> 

     <ul class="cat_col" id="cat-col-<?php echo $list_number; ?>"> 

     <?php 
     foreach($cat_array as $category) { 

      $result_number++; 

      if($result_number >= $cats_per_list) { 
$result_number = 0; 
       $list_number++; 
       echo $category.'</li> </ul> <ul class="cat_col" id="cat-col-'.$list_number.'">'; 
      } 
      else { 
       echo $category.'</li>'; 
      } 

     } 
     ?> 
     </ul> 
+0

嗨喬恩,我很感謝對檢查出我的代碼。雖然,我仍然無法弄清楚如何顯示列上的列表項。當我嘗試你的建議時,後面的列嵌套在第一列,不應該是這種情況。我試圖在3列上分發所有的

  • 。我也試着修改這一行 echo $ category。'
    • '; 認爲它會解決問題。 – Pennf0lio

    +0

    這是我在嘗試提出建議時得到的輸出。請注意,這些列嵌套在主列上,而第二列僅列出了應列出至少68個項目的幾個項目。在最後一欄,它確實沒有列出任何項目。 http://pastebin.com/GxxJUJ5k – Pennf0lio

    相關問題