WordPress的类别和其子

WordPress的类别和其子

问题描述:

您好我正在寻找相应地获得所有(父)类别与子女(假设你没有孙子),然后进行以下结构WordPress的类别和其子

<div class="box"> 
    <h3><a href="#">Parent Category I</a></h3> 
    <ul> 
     <li><a href="#">sub cat 1</a></li> 
     <li><a href="#">sub cat 2</a></li> 
     <li><a href="#">sub cat 3</a></li> 
    </ul> 
    </div> 
    <div class="box"> 
    <h3><a href="#">Parent Category II</a></h3> 
    <ul> 
     <li><a href="#">sub cat 1</a></li> 
     <li><a href="#">sub cat 2<</a></li> 
     <li><a href="#">sub cat 3</a></li> 
    </ul> 
    </div> 

我想这件事情喜欢(不介意的语法),但是我不知道如何获得这些(父)类别和他们的孩子:

$parents = ... ; 

foreach($parents as $parent){ 
<div> 
<h3>$parent</h3> 

$children = ...; 
<ul> 
foreach ($children as $child){ 
<li>$child</li> 
} 
</ul> 

</div> 

} 

好,我理解了它自己无论如何感谢尼&罗布

我basicly了2个功能

function getParentCategories() { 
    global $wpdb; 
    $sql = "SELECT term_id as id, name, slug FROM wp_terms where term_id in (SELECT term_id FROM wp_term_taxonomy where parent = 0 and taxonomy = 'category') order by name asc"; 
    $parents = $wpdb->get_results($sql); 
    return $parents; 
} 

function getChildCategories($id) { 
     global $wpdb; 
     $sql = "SELECT term_id as id, name, slug FROM wp_terms where term_id in (SELECT term_id FROM wp_term_taxonomy where parent = $id and taxonomy = 'category') order by name asc"; 
     $children = $wpdb->get_results($sql); 
     return $children; 
    } 

我与get_categories()wp_list_categories()(函数开始,虽然它可能不会完美满足您的需求,非常灵活),并猜测你必须使用一个for循环来通过父类别的嵌套循环来处理子代(就像你的伪代码所暗示的那样)。特别是对于wp_list_categories(),您可能无法获得所需的确切结构,但至少可以合理设计样式。

作为benny发布的内容,wp_list_categories将是您使用的最佳功能。

也许您应该重新考虑html结构,因为wordpress格式您的类别列表的方式是在一个无序的列表中,这是因为如果您的样式无法加载它以自然格式呈现。但是,您可以通过将'hierarchical'的值更改为false来更改此行为。

希望这有助于:)