如何在wordpress菜单中显示子类别

时间:2014-02-15 12:13:50

标签: php wordpress menu

您好我有一个脚本,显示wordpress菜单中的所有类别,但我也想在此菜单中添加子类别。如何检查类别是否具有子类别,然后将其显示在类别的子菜单中。

$items .= '<ul class="sub-menu">';  
$categories = get_categories();  
foreach ($categories as $category) {
    $option = '<li><a href="'.get_category_link( $category->term_id ).'">';
    $option .= $category->cat_name;
    $option .= '</a></li>';         
    $items .= $option;
}    
$items .= '</ul></li>'; 

1 个答案:

答案 0 :(得分:2)

get_categories()仅获取分配给任何帖子的类别和子类别,除非您将数组(“hide_empty”=&gt; 0)作为参数传递以获取非活动类别/子类别

尝试以下

$items .= '<ul class="sub-menu">';  
$categories = get_categories(array("hide_empty"=>0,'parent'=> '0'));  
foreach ($categories as $category) {
    $childrens = get_categories(array('child_of'=>$category->term_id,"hide_empty"=>0));
    $subitems ='';
    if(count($childrens)>0){
        $subitems .= '<ul class="sub-menu">';  
        foreach($childrens as $children){
            $opt = '<li><a href="'.get_category_link($children->term_id ).'">';
            $opt .= $children->cat_name;
            $opt .= '</a></li>';         
            $subitems .= $opt;  
        }
        $subitems.= '</ul></li>';
    }
    $option = '<li><a href="'.get_category_link( $category->term_id ).'">';
    $option .= $category->cat_name;
    $option .= '</a>'.$subitems.'</li>';         
    $items .= $option;
}    
$items .= '</ul></li>';

我知道这是一种肮脏的方式。除非你确实需要,否则不要使用“hide_empty”=&gt; 0