diff --git a/lib/nav.php b/lib/nav.php index acc51b1..8fbd16a 100755 --- a/lib/nav.php +++ b/lib/nav.php @@ -13,41 +13,22 @@ class_exists('UberMenu') add_action( 'genesis_before', 'genesis_do_nav' ); add_action( 'genesis_before', 'genesis_do_subnav' ); -// filter menu args for bootstrap walker and other settings -add_filter( 'wp_nav_menu_args', 'bsg_nav_menu_args_filter' ); -// add bootstrap markup around the nav -add_filter( 'wp_nav_menu', 'bsg_nav_menu_markup_filter', 10, 2 ); -function bsg_nav_menu_args_filter( $args ) { - - if ( - 'primary' === $args['theme_location'] || - 'secondary' === $args['theme_location'] - ) { - $args['depth'] = 2; - $args['menu_class'] = 'nav navbar-nav'; - $args['fallback_cb'] = 'wp_bootstrap_navwalker::fallback'; - $args['walker'] = new wp_bootstrap_navwalker(); - } - - return $args; -} - -function bsg_nav_menu_markup_filter( $html, $args ) { - // only add additional Bootstrap markup to - // primary and secondary nav locations - if ( - 'primary' !== $args->theme_location && - 'secondary' !== $args->theme_location - ) { - return $html; - } - - $data_target = "nav-collapse" . sanitize_html_class( '-' . $args->theme_location ); - $output = << - +add_filter( 'genesis_do_nav', 'bsg_nav_menu', 10, 3 ); +add_filter( 'genesis_do_subnav', 'bsg_nav_menu', 10, 3 ); +function bsg_nav_menu_args_filter($nav_output, $nav, $args){ + + $args['depth'] = 3; + $args['menu_class'] = 'nav navbar-nav'; + $args['fallback_cb'] = 'wp_bootstrap_navwalker::fallback'; + $args['walker'] = new wp_bootstrap_navwalker(); + + $nav = wp_nav_menu( $args ); + $sanitized_location = sanitize_key( $args['theme_location'] ); + + $data_target = 'nav-collapse-' . $sanitized_location; + $nav_markup = << EOT; - // only include blog name and description in the nav - // if it is the primary nav location - if ( 'primary' === $args->theme_location ) { - $output .= apply_filters( 'bsg_navbar_brand', bsg_navbar_brand_markup() ); - } - - $output .= ''; // .navbar-header + // only include blog name and description in the nav + // if it is the primary nav location + if ( 'primary' === $sanitized_location ) { + $nav_markup .= apply_filters( 'bsg_navbar_brand', bsg_navbar_brand_markup() ); + } + + $nav_markup .= ''; // .navbar-header + $nav_markup .= ''; // .collapse .navbar-collapse + + $nav_markup_open = sprintf( ''; + $nav_output = $nav_markup_open . $nav_markup . $nav_markup_close; + + return $nav_output; +} - $output .= "
"; - $output .= $html; - $output .= '
'; // .collapse .navbar-collapse - $output .= ''; // .container-fluid - return $output; -} function bsg_navbar_brand_markup() { $output = '