2014-11-04 68 views
1

虽然这听起来很简单,但我想要返回一个自定义帖子类型分类术语的层次列表。我得到的是术语和嵌套uls的第一级。但子条款并未显示。有任何想法吗?WordPresspress:分类术语的分层列表

下面的代码:

function return_terms_index() { 
    $taxonomies = array( 
    'taxonomy_name', 
); 

    $args = array(
    'orderby'   => 'name', 
    'order'    => 'ASC', 
    'hide_empty'  => false, 
    'fields'   => 'all', 
    'parent'   => 0, 
    'hierarchical'  => true, 
    'child_of'   => 0, 
    'pad_counts'  => false, 
    'cache_domain'  => 'core'  
); 

    $terms = get_terms($taxonomies, $args); 

    $return .= '<ul>'; 

    foreach ($terms as $term) { 

     // return terms (working) 
     $return .= sprintf(
     '<li id="category-%1$s" class="toggle">%2$s <span class="cat-description">%3$s</span>',  
     $term->term_id, 
     $term->name, 
     $term->description 
    ); 

     $subterms = get_terms(array(
      'parent' => $term->term_id, 
      'hide_empty' => false 
     )); 

     $return .= '<ul>'; 

     foreach ($subterms as $subterm) { 

      //return sub terms (not working :() 
      $return .= sprintf(
      '<li id="category-%1$s" class="toggle">%2$s <span class="cat-description">%3$s</span>',  
      $subterm->term_id, 
      $subterm->name, 
      $subterm->description 
     ); 

      $return .= '</li>'; //end subterms li 
     }    

     $return .= '</ul>'; //end subterms ul 

     $return .= '</li>'; //end terms li 
    } //end foreach term 

    $return .= '</ul>'; 

return $return; 
} 

谢谢!

编辑:这里的输出。

<ul> 
    <li id="category-176"> 
    1. <span class="post-count">0</span><span class="cat-description" style="display: none;">Description</span> 
    <ul id="subTerm-176" style="display: block;"></ul> 
    </li> 
    <li id="category-49"> 
    2. <span class="post-count">0</span><span class="cat-description" style="display: none;">Langtitel/Beschreibung</span> 
    <ul id="subTerm-49" style="display: none;"></ul> 
    </li> 
</ul> 

编辑:分类法在分级列表中返回了,耶! 但我想查询和显示第三级分类术语的帖子,这一点的代码没有办法。

$post_query = new WP_Query($taxonomies, array( 
    'term' => $subsubterm->term_id 
)); ?> 

    <?php if ($post_query->have_posts()) : 
    $return .= '<ul>'; 
    while ($post_query->have_posts()) : $post_query->the_post(); 
    $return .= '<li><a class="link" href="' . get_permalink() . '">' . get_the_title() . '</a></li>' . "\n"; 
    endwhile; 
    $return .= '</ul>'; 

wp_reset_postdata(); 
else: 
endif; 

它必须是动态的,所以我不能通过名称/ slug来指定一个术语。但这甚至可能吗?

'term' => $subsubterm->term_id 

再次感谢。

回答

2

你已经错过了在

$subterms = get_terms($taxonomies, array(
     'parent' => $term->term_id, 
     'hide_empty' => false 
    )); 

尝试通过分类$下面的代码

function return_terms_index() { 
    $taxonomies = array( 
    'taxonomy_name', 
); 

    $args = array(
    'orderby'   => 'name', 
    'order'    => 'ASC', 
    'hide_empty'  => false, 
    'fields'   => 'all', 
    'parent'   => 0, 
    'hierarchical'  => true, 
    'child_of'   => 0, 
    'pad_counts'  => false, 
    'cache_domain'  => 'core'  
); 

    $terms = get_terms($taxonomies, $args); 

    $return .= '<ul>'; 

    foreach ($terms as $term) { 

     // return terms (working) 
     $return .= sprintf(
     '<li id="category-%1$s" class="toggle">%2$s <span class="cat-description">%3$s</span>',  
     $term->term_id, 
     $term->name, 
     $term->description 
    ); 

     $subterms = get_terms($taxonomies, array(
      'parent' => $term->term_id, 
      'hide_empty' => false 
     )); 

     $return .= '<ul>'; 

     foreach ($subterms as $subterm) { 

      //return sub terms (not working :() 
      $return .= sprintf(
      '<li id="category-%1$s" class="toggle">%2$s <span class="cat-description">%3$s</span>',  
      $subterm->term_id, 
      $subterm->name, 
      $subterm->description 
     ); 

      $return .= '</li>'; //end subterms li 
     }    

     $return .= '</ul>'; //end subterms ul 

     $return .= '</li>'; //end terms li 
    } //end foreach term 

    $return .= '</ul>'; 

return $return; 
} 
+0

感谢指出了这一点!我实现了你的代码/缺少$分类法,但输出保持不变(请参阅编辑的文章)。 – george 2014-11-04 10:09:05

+0

代码工作正常。检查您的管理面板。你有没有分配职位的任何分项? – 2014-11-04 10:12:29

+0

现在工作还是有错误? – 2014-11-04 10:31:39