如何循环获取父级和子级类别

时间:2019-04-25 09:02:19

标签: php wordpress categories

我正在尝试创建一个循环遍历所有父类别的循环,并回显包含其名称的<header>,然后在其下方回显包含其子类别的列表。如图所示。

到目前为止,我所得到的只是一个简单的foreach,它可以获取类别。但是我需要正确输出的帮助。

$categories = get_categories( array(
    'orderby' => 'name',
    'order'   => 'ASC'
));

foreach($categories as $category) {
    //the problem starts here.
} 

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以获得这样的列表,更改单选按钮的代码

<?php 

                $taxonomyName = "category";
                $parent_terms = get_terms($taxonomyName, array('parent' => 0, 'orderby' => 'slug', 'hide_empty' => false));   

                foreach ($parent_terms as $pterm) {
                    echo '<div class="single_cat col-md-3">';
                        echo '<h3>'.$pterm->name.'</h3>'; 
                    $terms = get_terms($taxonomyName, array('parent' => $pterm->term_id, 'orderby' => 'slug', 'hide_empty' => false));
                    foreach ($terms as $term) {

                        echo "<ul>";
                        echo '<li><a href="' . get_term_link($term) . '">' . $term->name . '</a></li>'; 
                        echo "</ul>";

                    }
                      echo '</div>'; 
                }


                 ?>

答案 1 :(得分:0)

使用参数parent来解决问题。 尝试这种方法-

$categories = get_categories( array(
        'orderby' => 'name',
        'order'   => 'ASC',
        'parent' => 0,
    ));


    foreach($categories as $category) {
        //Echo parent element  
        $child_categories = get_categories( array(
           'orderby' => 'name',
           'order'   => 'ASC',
           'parent' => $category->term_id,
         ));
        // now loop through $child_categories 
    }