2013-04-10 57 views
0

我在wordpress中顯示自定義帖子類型的下拉列表。本的代碼首先塊使用WP_Querywp_dropdown_pages tax_query子句

$houseQuery = new WP_Query(
    array(
     'post_type' => 'house', 
     'order'  => 'ASC', 
     'post_status' => 'publish', 
     'orderby' => 'title', 
     'nopaging' => true, 
     'tax_query' => array(
     array(
      'taxonomy' => 'teamtype', 
      'field'  => 'slug', 
      'terms'  => 'sectorteam', // exclude house posts in the sectorteam custom teamtype taxonomy 
      'operator' => 'NOT IN') 
     )) 
); 
if($companyList->have_posts()) : 
    while ($companyList->have_posts()) : $houseQuery->the_post(); 
     if(get_the_ID()==$c) 
      $name=$post->post_title; 
     echo '{ value:'.get_the_ID().', label: "'.get_the_title(get_the_ID()).'"},'; 
    endwhile; 
endif; 

這是代碼的第二切口,它使用「wp_dropdown_page()」方法和有點更簡潔

$args = array (
    'id' => 'house', 
    'name' => 'house', 
    'echo' => 1, 
    'post_type' => 'house' 
); 
wp_dropdown_pages($args); 

我需要排除所定義的帖子通過第一個例子中的'tax_query',但我確保如何通過'wp_dropdown_pages'使用的參數來完成這個任何想法?

+0

你可能會考慮發佈到http://wordpress.stackexchange.com – jxpx777 2013-04-10 15:25:50

+0

我也是這樣做的,但我發現stackoverflow得到更好的回覆 – emeraldjava 2013-04-10 16:10:14

回答

0

您是否嘗試過使用exludeexclude_tree參數作爲described in the Codex

排除
以逗號分隔的類別ID列表中排除。例如,'exclude = 4,12'表示類別ID 4和12不會顯示/回顯或返回。默認排除任何東西。

由於您使用的是post_type參數,我假設您的自定義帖子類型是分層的。

+0

我確實嘗試了排除,但文檔說這適用於類別而不是分類 – emeraldjava 2013-04-10 16:09:08

+0

'wp_dropdown_pages'正在調用'get_pages'來獲取項目,所以[它的所有參數](http://codex.wordpress.org/Function_Reference/get_pages)應該可以工作。你的帖子類型是分層的嗎? – montrealist 2013-04-10 17:08:11

+0

是的,它是分層的。我想我可以將特定分類中的所有帖子移到特定的父帖子中,然後排除它,但似乎有點破解。 – emeraldjava 2013-04-10 17:17:09