2017-06-29 73 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分钟后我不能编辑相同的评论。 –

相关问题