Update mobile navigation
authorSteve Sutton <steve@gaslightmedia.com>
Wed, 26 Aug 2015 20:08:14 +0000 (16:08 -0400)
committerSteve Sutton <steve@gaslightmedia.com>
Wed, 26 Aug 2015 20:08:14 +0000 (16:08 -0400)
Adding a custom menu walker for the off canvas menu so it is grabing the
main site menu from appearance menu.

functions.php
parts/off-canvas-menu.php

index f25ba12..3ac6420 100644 (file)
@@ -109,6 +109,31 @@ class Mountpleasantcvb_Top_Bar_Walker extends Walker_Nav_Menu {
 
 }
 endif;
+/**
+ * Mobile off-canvas
+ */
+if ( ! function_exists( 'mountpleasantcvb_mobile_off_canvas' ) ) {
+  function mountpleasantcvb_mobile_off_canvas() {
+      echo '<ul class="left-off-canvas-list">';
+      echo '<li><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)
+          'items_wrap' => '%3$s',
+          'walker' => new Mountpleasantcvb_Offcanvas_Walker()
+      ));
+      echo '</ul>';
+  }
+}
 if ( ! function_exists( 'mountpleasantcvb_footer' ) ) {
   function mountpleasantcvb_footer() {
       wp_nav_menu(array(
@@ -128,6 +153,41 @@ if ( ! function_exists( 'mountpleasantcvb_footer' ) ) {
   }
 }
 
+if ( ! class_exists( 'Mountpleasantcvb_Offcanvas_Walker' ) ) :
+class Mountpleasantcvb_Offcanvas_Walker extends Walker_Nav_Menu {
+
+    function display_element( $element, &$children_elements, $max_depth, $depth = 0, $args, &$output ) {
+        $element->has_children = ! empty( $children_elements[ $element->ID ] );
+        $element->classes[] = ( $element->current || $element->current_item_ancestor ) ? 'active' : '';
+        $element->classes[] = ( $element->has_children && 1 !== $max_depth ) ? 'page_item_has_children' : '';
+        $element->classes[] = 'page_item';
+
+        parent::display_element( $element, $children_elements, $max_depth, $depth, $args, $output );
+    }
+
+    function start_el( &$output, $object, $depth = 0, $args = array(), $current_object_id = 0 ) {
+        $item_html = '';
+        parent::start_el( $item_html, $object, $depth, $args );
+
+        $classes = empty( $object->classes ) ? array() : (array) $object->classes;
+
+        if ( in_array( 'label', $classes ) ) {
+            $item_html = preg_replace( '/<a[^>]*>(.*)<\/a>/iU', '<label>$1</label>', $item_html );
+        }
+
+        $output .= $item_html;
+    }
+
+    function start_lvl( &$output, $depth = 0, $args = array() ) {
+        $output .= "\n<ul class=\"children\">\n";
+    }
+
+    function end_lvl(&$output, $depth = 0, $args = array()){
+        $output .= '</ul>';
+    }
+
+}
+endif;
 /**
  * glm_page_menu
  *
index 16b5e40..1756831 100644 (file)
@@ -1,5 +1,6 @@
 <aside class="left-off-canvas-menu hide-for-large-up">
-    <?php glm_offcanvas_menu(); ?>
+    <?php //glm_offcanvas_menu(); ?>
+    <?php mountpleasantcvb_mobile_off_canvas(); ?>
     <form role="search" method="get" id="formsearch" action="<?php echo home_url('/'); ?>">
         <input class="search-input" type="search" placeholder="SEARCH" value="" name="s" id="off-search">
         <input type="submit" class="button" name="submit" value="Search">