2011-03-13 57 views
0

我有兩個自定義帖子類型,稱爲「項目」和「客戶端」,共享一個稱爲「扇區」的分類。從一個自定義帖子類型中篩選wp_list_categories

if (!is_taxonomy('sector')) { 
     register_taxonomy(
     'sector', array('project', 'client'), array(
     'hierarchical' => true, 
     'label' => 'Sector', 
     'query_var' => true, 
     'rewrite' => array('slug' => 'sector'), 
     'with_front' => false 
     )); 

     wp_insert_term('Health', 'sector'); 
     wp_insert_term('Clubs', 'sector'); 
     wp_insert_term('Commercial', 'sector');  
    } 

我已經創建了一個側欄導航使用列出鏈接到我的分類檔案分類法歸檔模板:

//list terms in a given taxonomy using wp_list_categories 

    $orderby  = 'name'; 
    $show_count = 1;  // 1 for yes, 0 for no 
    $pad_counts = 0;  // 1 for yes, 0 for no 
    $hierarchical = 0;  // 1 for yes, 0 for no 
    $show_option_none=''; 
    $title  = ''; 

    $args_sector = array(
     'taxonomy'  => 'sector', 
     'orderby'  => $orderby, 
     'show_count' => $show_count, 
     'pad_counts' => $pad_counts, 
     'hierarchical' => $hierarchical, 
     'title_li'  => $title 
    ); 


<ul id="sideNav" class="rightSubMenu"> 
     <h3 class="rightSubNav">SECTOR</h3> 
     <ul id="sideNav" class="rightSubMenu"> 
     <?php wp_list_categories($args_sector); ?> 
     </ul> 

</ul> 

的問題是,如果我有一個鏈接到「俱樂部」的項目,並一個鏈接到「俱樂部」的客戶端的輸出計數顯示2.此外,存檔頁面顯示2個帖子 - 1個用於項目,另一個用於客戶端。但只有一個項目。

我主要關注項目頁面,並希望通過我的'項目'文章類型過濾結果。我查看了代碼,wp_list_categories函數似乎不接受參數來執行此操作。

任何人都可以幫忙嗎?有一個更好的方法嗎?

回答

0

我有過類似的問題。我這樣做是通過克隆wp_list_categories功能,給它一個不同的名稱和行後,將在此代碼:$類= get_categories($ R):

foreach ($categories as $key => $category){ 
     $temp = array ('post_type'=>$r['type'], 'tax_query' => array(
      array (
       'taxonomy' => $category->taxonomy, 
       'field' => 'slug', 
       'terms' => $category->slug 
      ) 

     ) 
      ); 
     $pauli = new wp_query($temp); 
     if($pauli->post_count==0){ 
      unset($categories[$key]); 
     } 
    } 

正如你所看到的,它會刪除不類別有任何你需要的職位類型,然後繼續這個過程,正如wp_list_categories所做的那樣。

+0

你可以在不創建'wp_list_categories()'自定義版本的情況下實現這種方式。要使用更清晰的方法使用相同的代碼,請鉤入[''get_terms''過濾器](http://adambrown.info/p/wp_hooks/hook/get_terms?version=3.6&file=wp-includes/taxonomy.php ),然後檢查目標分類法,您不在儀表板中,並且已經執行主查詢,然後更改計數。 –

相關問題