Updating the menus
authorSteve Sutton <steve@gaslightmedia.com>
Tue, 29 Dec 2015 16:15:34 +0000 (11:15 -0500)
committerSteve Sutton <steve@gaslightmedia.com>
Tue, 29 Dec 2015 16:15:59 +0000 (11:15 -0500)
Use separate menu for each main level menu item.

lib/menu-walker.php
lib/navigation.php

index 64b5a96..a4035f0 100644 (file)
@@ -22,10 +22,10 @@ class Glm_Theme_Top_Bar_Walker extends Walker_Nav_Menu {
 
         // Insert style to display page's thumbnail
         $item_style = '';
-        if ($depth == 0 && has_post_thumbnail((int)$object->object_id)) {
-            $thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id((int)$object->object_id), 'large');
-            $item_style .= "<style>#menu-item-".$object->ID." > .dropdown:before { background-image: url('".$thumbnail[0]."');</style>";
-        }
+        //if ($depth == 0 && has_post_thumbnail((int)$object->object_id)) {
+            //$thumbnail = wp_get_attachment_image_src(get_post_thumbnail_id((int)$object->object_id), 'large');
+            //$item_style .= "<style>#menu-item-".$object->ID." > .dropdown:before { background-image: url('".$thumbnail[0]."');</style>";
+        //}
         //$output .= ( 0 == $depth ) ? '<li class="divider"></li>' : '';
         $classes = empty( $object->classes ) ? array() : (array) $object->classes;
         if ( in_array( 'label', $classes ) ) {
index 1380c34..6ae7e92 100644 (file)
@@ -1,29 +1,48 @@
 <?php
 
 register_nav_menus(array(
-  'top-bar' => 'Site Navigation'
+  'top-bar-1' => 'Top Nav One',
+  'top-bar-2' => 'Top Nav Two',
+  'top-bar-3' => 'Top Nav Three',
+  'top-bar-4' => 'Top Nav Four',
+  'top-bar-5' => 'Top Nav Five',
+  'top-bar-6' => 'Top Nav Six'
 ));
 
 /**
  * Top Bar
  */
 if ( ! function_exists( 'glm_theme_top_bar' ) ) {
-  function glm_theme_top_bar() {
-      wp_nav_menu(array(
-          'container' => false,                           // remove nav container
-          'container_class' => '',                        // class of container
-          'menu' => '',                                   // menu name
-          'menu_class' => '',                             // adding custom nav class
-          'theme_location' => 'top-bar',                  // where it's located in the theme
-          'before' => '',                                 // before each link <a>
-          'after' => '',                                  // after each link </a>
-          'link_before' => '',                            // before each link text
-          'link_after' => '',                             // after each link text
-          'depth' => 3,                                   // limit the depth of the nav
-          'fallback_cb' => false,                         // fallback function (see below)
-          'walker' => new Glm_Theme_Top_Bar_Walker()
-      ));
-  }
+    function glm_theme_top_bar() {
+        echo '<ul>';
+        echo glm_get_top_bar_nav_menu( 'top-bar-1' );
+        echo glm_get_top_bar_nav_menu( 'top-bar-2' );
+        echo glm_get_top_bar_nav_menu( 'top-bar-3' );
+        echo glm_get_top_bar_nav_menu( 'top-bar-4' );
+        echo glm_get_top_bar_nav_menu( 'top-bar-5' );
+        echo glm_get_top_bar_nav_menu( 'top-bar-6' );
+        echo '</ul>';
+    }
+}
+
+function glm_get_top_bar_nav_menu( $theme_location )
+{
+    $menu = wp_nav_menu(array(
+        'echo'            => false,       // don't echo
+        'container'       => false,       // remove nav container
+        'container_class' => '',          // class of container
+        'menu'            => '',          // menu name
+        'menu_class'      => '',          // adding custom nav class
+        'theme_location'  => $theme_location, // where it's located in the theme
+        'before'          => '',          // before each link <a>
+        'after'           => '',          // after each link </a>
+        'link_before'     => '',          // before each link text
+        'link_after'      => '',          // after each link text
+        'depth'           => 3,           // limit the depth of the nav
+        'fallback_cb'     => false,       // fallback function (see below)
+        'walker'          => new Glm_Theme_Top_Bar_Walker()
+    ));
+    return preg_replace( array( '%^<ul[^>]*>%', '%</ul>$%' ), '', $menu );
 }
 
 /**
@@ -33,24 +52,36 @@ if ( ! function_exists( 'glm_theme_mobile_off_canvas' ) ) {
     function glm_theme_mobile_off_canvas() {
         echo '<div class="left-off-canvas-list">';
         echo '<ul><li class="page_item"><a href="' . get_bloginfo('url') . '">Home</a></li>';
-        wp_nav_menu(array(
-            'container' => false,                           // remove nav container
-            'container_class' => '',                        // class of container
-            'menu' => '',                                   // menu name
-            'menu_class' => 'off-canvas-list',              // adding custom nav class
-            'theme_location' => 'top-bar',        // where it's located in the theme
-            'before' => '',                                 // before each link <a>
-            'after' => '',                                  // after each link </a>
-            'link_before' => '',                            // before each link text
-            'link_after' => '',                             // after each link text
-            'depth' => 5,                                   // limit the depth of the nav
-            'fallback_cb' => false,                         // fallback function (see below)
-            'walker' => new Glm_Theme_Off_Canvas_Walker()
-        ));
+        echo glm_get_mobile_nav_menu( 'top-bar-1' );
+        echo glm_get_mobile_nav_menu( 'top-bar-2' );
+        echo glm_get_mobile_nav_menu( 'top-bar-3' );
+        echo glm_get_mobile_nav_menu( 'top-bar-4' );
+        echo glm_get_mobile_nav_menu( 'top-bar-5' );
+        echo glm_get_mobile_nav_menu( 'top-bar-6' );
         echo '</ul></div>';
     }
 }
 
+function glm_get_mobile_nav_menu( $theme_location )
+{
+    $menu = wp_nav_menu(array(
+        'echo'            => false,             // don't echo
+        'container'       => false,             // remove nav container
+        'container_class' => '',                // class of container
+        'menu'            => '',                // menu name
+        'menu_class'      => 'off-canvas-list', // adding custom nav class
+        'theme_location'  => $theme_location,       // where it's located in the theme
+        'before'          => '',                // before each link <a>
+        'after'           => '',                // after each link </a>
+        'link_before'     => '',                // before each link text
+        'link_after'      => '',                // after each link text
+        'depth'           => 5,                 // limit the depth of the nav
+        'fallback_cb'     => false,             // fallback function (see below)
+        'walker'          => new Glm_Theme_Off_Canvas_Walker()
+    ));
+    return preg_replace( array( '%^<ul[^>]*>%', '%</ul>$%' ), '', $menu );
+}
+
 /**
  * Footer
  */