2012-11-27 108 views
0

我想顯示所有類別的列表,使用他們的層次結構。我想在點擊類別時使用jquery來操作其他對象,所以我需要刪除默認添加的鏈接。是否有替代wp_list_categories

wp_list_categories能夠完美地自動添加子類別的層次結構並添加嵌套列表。我只是不想要默認添加的鏈接。

是否有替代wp_list_categories這不給每個類別鏈接到其各自的頁面?

當我嘗試get_categories()時,它不尊重類別的層次結構。

使用最新的WP版本。

回答

1

wp_list_categories()函數的輸出是通過一個過濾器,你可以用它來修改生成的HTML傳遞:

$output = apply_filters('wp_list_categories', $output, $args); 

如果要真正地修改由函數生成的HTML代碼,你可以擴展Walker_Category類,一個很好的解釋可以在這裏找到http://scribu.net/wordpress/extending-the-category-walker.html

0

Walker_Category類是最終爲我工作。它具備了我製作自定義列表所需的所有槓桿。

但是,我只是想發佈我的第一次嘗試,這對一個簡單的列表工作得很好。它使用嵌套循環。

<div class="tab-row"> 
    <?php $args = array(
     'taxonomy' => 'taxonomyName', 
     'parent' => 0 
    ); 

    $categories = get_categories($args); 
    $catid = array(); 
    foreach($categories as $category) { 

     echo '<ul class="parent-tab"><div class="parent-item">' . $category->name . '</div>'; 
     array_push($catid, $category->term_id); 


     echo '</ul>'; 
    } ?> 
</div> 
<div class="child-row"> 
    <?php 
    $countStop = count($categories); 
    $i = 0; 
    while ($i < $countStop) { 
     echo "<ul class='child-list'>"; 
     $args = array(
        'taxonomy' => 'taxonomyName', 
        'parent' => $catid[$i] 
       ); 

     $categories = get_categories($args);  
      foreach($categories as $category) { 
       echo '<li class="child-item">' . $category->name .'</li>'; 
      } 
     echo "</ul>"; 
     $i++; 
    } 

    ?> 
</div> 

我用get_categories(),它消除了鏈接,並只在第一個循環顯示的父母創建了我的分類層次,並在嵌套循環,通過檢索父ID拉出認爲父母的孩子。