2017-06-29 71 views
1

我已經創建了自定義分類,自定義帖子類型和自定義頁面。 問題:Wordpress顯示屬於類別及其所有子類別的所有帖子。這是自定義頁面的代碼:WordPress的:如何防止自定義分類法中顯示子類別?

global $wp_query; 
$wp_query->set('post_type', $postType); 
$wp_query->set('orderby', $orderBy); 
$wp_query->set('order', 'ASC'); 
$wp_query->set('posts_per_page', 12); 
$active_term = get_term_by('slug', $term, $taxonomy); 
if ($active_term->parent == 0) 
{ 


    $terms = get_terms(array(
     'taxonomy' => $taxonomy, 
     'hide_empty' => false, 
     'parent' => $active_term->term_id, 
     'orderby' => 'term_id', 
     'order' => 'ASC' 
    )); 
    $slug_array = array(); 
    if(count($terms) > 0) 
    { 
     foreach ($terms as $t){ 
      $slug_array[] = $t->slug; 
     } 
     $the_slug = $terms[0]->slug; 

     $active_title = $terms[0]->name; 
    } 
    else 
    { 
     $the_slug = $active_term->slug; 
     $slug_array = array($the_slug); 
     $active_title = $active_term->name; 
    } 
    $tax_query = array(
     array(
      'taxonomy' => $taxonomy, 
      'field' => 'slug', 
      'terms' => $slug_array, 
      'include_children' => false 
     ) 
    ); 

} 
else 
{ 

    $tax_query = array(
     array(
      'taxonomy' => $taxonomy, 
      'field' => 'slug', 
      'terms' => array ($active_term->slug), 
      'include_children' => false 
     ) 
    ); 
    $the_slug = $active_term->slug; 
    $active_title = $active_term->name; 
} 
$wp_query->set('tax-query', $tax_query); 
$wp_query->get_posts(); 

正如你看到的,選項「include_children」 =>假設置和Wordpres一直顯示所有的孩子。我不知道什麼是錯

回答

1

如果這正是這就是生活的代碼,那麼你可能(我說的可能,「因爲它沒有測試這個)有一個錯字在你的代碼

$wp_query->set('tax-query', $tax_query);

應該

$wp_query->set('tax_query', $tax_query);

通知下劃線,而不是一個連字符。

又見WP_Query#Taxonomy_Parameters

+0

謝謝,非常感謝。有用!但是,另外。我不得不作出評論: /*如果($ active_term-> parent == 0)和其他{*/$ tax_query = array( –

+0

非常感謝,它的工作原理! : /* if($ active_term-> parent == 0)and else {*/$ tax_query = array( and the previous line to $ wp_query-> set('tax-query',$ tax_query); //} 重複評論的道歉,但5分鐘後我不能編輯相同的評論。 –

相關問題