wordpress类别及其子类别

时间:2010-04-05 11:39:16

标签: 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>

}

3 个答案:

答案 0 :(得分:0)

我从get_categories()wp_list_categories()开始(功能,虽然它可能不适合您的需求,非常灵活),并猜测您必须使用for-循环遍历带有嵌套循环的父类别来处理子代(如伪代码所示)。特别是使用wp_list_categories()时,您可能无法获得所需的确切结构,但至少可以合理地设置样式。

答案 1 :(得分:0)

正如benny发布的那样,wp_list_categories将是您最好的功能。

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

希望这会有所帮助:)

答案 2 :(得分:0)

好吧,我自己也想出了感谢Benny&amp;罗布

我基本上做了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;
    }
相关问题