1

我试图开发的网站有两个根页面。作为导航结构:

  • 一个(0级)
    • A1(1级)
      • A1.1(2级)
      • A1.2(2级)
    • A2(1级)
      • A2.1(2级)
      • A2.2(2级)
  • B(0级)
    • B1(1级)
      • B1.1(2级)
      • B1.2(2级)
    • B2(1级)
      • B2.1(2级)
      • B2.2(2级)

如果当前页面是 A 的后代,我需要显示navA ,同样,如果当前页面是 B 的后代,则仅显示 navB 。

我尝试在 wordpress 后端创建两个单独的菜单,但只有 mainNav 一个会显示。菜单使用 wp_nav_menu($args) 作为导航生成,如下所示。

echo "<div class='main_menu' data-selectname='".__('Select a page','avia_framework')."'>";

                        $avia_theme_location = 'avia';
                        $avia_menu_class = $avia_theme_location . '-menu';
                        $args = array(
                            'theme_location'    => $avia_theme_location,
                            'menu_id'           => $avia_menu_class,
                            'container_class'   => $avia_menu_class,
                            'fallback_cb'       => 'avia_fallback_menu',
                            'walker'            => new avia_responsive_mega_menu()
                        );

                        **wp_nav_menu($args);**

   echo "</div>";

有没有办法从后端实现这个功能?否则,有什么建议可以走这条路吗?

谢谢!

4

1 回答 1

1
function menu_set_parent( $sorted_menu_items, $args ) {
    $last_top = 0;
    foreach ( $sorted_menu_items as $key => $obj ) {
        // it is a top lv item?
        if ( 0 == $obj->menu_item_parent ) {
            // set the key of the parent
            $last_top = $key;
        } else {
            $sorted_menu_items[$last_top]->classes['parent'] = 'parent';
        }
    }
    return $sorted_menu_items;
}
add_filter( 'wp_nav_menu_objects', 'menu_set_parent', 10, 2 );

试试这个,它会将父类添加到 parent 。将此添加到您的functions.php

于 2013-10-01T15:48:54.273 回答