Есть ли хороший способ отделить категории от подкатегорий в wp - PullRequest
1 голос
/ 22 марта 2012

Вот мои функции костюма, которые я написал для меню и подменю в моей теме WordPress, но после того, как я протестировал его, подменю исчезло, когда я щелкнул по подменю, потому что WordPress не отделяет категории от подкатегорий, поэтому параметр для них«cat», что означает, что когда я нажимаю на подменю, то функция, которая создает подменю, проверяет, имеет ли cat = id в URL дочерние категории, но это не потому, что это дочерняя категория, я новичок в WordPress и не знаюкак с этим бороться:

function costume_menu() {
$categories =  get_categories('hide_empty=0&style=none&parent=0'); 
  foreach ($categories as $category) {
    (is_category($category->term_id)) ? $active = 'class="active_menu"' : $active = '';
    $nav = '<li>';
    $nav .= '<a '.$active.'href="'.get_category_link($category->term_id).'">'.strtoupper($category->cat_name).'</a>';
    $nav .= '</li>';

    echo $nav;
  }

}

function costume_submenu($cat) {

$categories =  get_categories("child_of=$cat&hide_empty=0"); 
  foreach ($categories as $category) {
    (is_category($category->term_id)) ? $active = 'class="active_menu"' : $active = '';
    $nav = '<li>';
    $nav .= '<a '.$active.'href="'.get_category_link($category->term_id).'">'.strtoupper($category->cat_name).'</a>';
    $nav .= '</li>';

    echo $nav;
  }
}

1 Ответ

1 голос
/ 23 марта 2012

Попробуйте функцию, подобную этой:

function costume_submenu($cat) {
    $current_cat=get_category($cat);
    if($current_cat->parent==0)
        $parent_cat=$cat;
    else
        $parent_cat=$current_cat->parent;

    $categories =  get_categories("child_of=$parent_cat&hide_empty=0");    
    foreach ($categories as $category) {
        (is_category($category->term_id)) ? $active = 'class="active_menu"' : $active = '';
        $nav = '<li>';
        $nav .= '<a '.$active.'href="'.get_category_link($category->term_id).'">'.strtoupper($category->cat_name).'</a>';
        $nav .= '</li>';

        echo $nav;   
    } 
}
...