Подменю исчезает при нажатии в подменю в WordPress - PullRequest
3 голосов
/ 19 марта 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 голос
/ 05 апреля 2012

Как бы вы хотели, чтобы ваше меню выглядело?

  • Родительская категория a (текущая), поэтому показать все
    • Дочерняя категория a (текущая), поэтому показать все
      • Sub Sub cat
  • Родительская категория b
  • Родительская категория c
  • Родительская категория d

Если это будет конечный результат, тогда нам нужно

  1. Получить параметр категории из URL
  2. Реализовать рекурсивную функцию для обхода всех категорий.
  3. Важно, что нам также нужно, чтобы потомки этой категории могли определить, это меню должно показать, был ли его ребенок или дети детей выбран.

Более точные детали, чтобы следовать, если вы хотите.

...