예제 #1
0
 /**
  * Renders Site Menu
  *
  * @access public
  * @param string $slug
  * @return void
  */
 public static function renderSiteMenu($slug)
 {
     $locations = get_nav_menu_locations();
     if (isset($locations[$slug])) {
         $menu = wp_get_nav_menu_object($locations[$slug]);
         if (isset($menu->term_id)) {
             $menu_items = wp_get_nav_menu_items($menu->term_id);
             $isFirstMenu = true;
             $parentMenuTemp = 0;
             $isSubMenu = false;
             $subMenuC = 0;
             $hasChildMenu = false;
             $out = '<ul class="nav navbar-nav"><li>';
             foreach ((array) $menu_items as $key => $menu_item) {
                 $hasChildMenu = MthemeCore::hasPostIdByMetaKeyAndMetaValue('menu_item_menu_item_parent', $menu_item->ID);
                 $parentMenu = MthemeCore::getPostMeta($menu_item->ID, 'menu_item_menu_item_parent', 0);
                 if ($parentMenu != 0) {
                     if ($parentMenuTemp != $parentMenu) {
                         if ($isSubMenu) {
                             $subMenuC++;
                         }
                         if ($hasChildMenu) {
                             $out .= '<ul class="dropdown-menu level-' . ($subMenuC + 1) . '"><li class="dropdown-submenu">';
                         } else {
                             $out .= '<ul class="dropdown-menu level-' . ($subMenuC + 1) . '"><li>';
                         }
                     } else {
                         if ($hasChildMenu) {
                             $out .= '</li><li class="dropdown-submenu">';
                         } else {
                             $out .= '</li><li>';
                         }
                     }
                     $parentMenuTemp = $parentMenu;
                     $isSubMenu = true;
                 } else {
                     if ($isSubMenu) {
                         while ($subMenuC--) {
                             $out .= '</li></ul>';
                         }
                         $out .= '</li></ul></li><li>';
                         $isSubMenu = false;
                         $subMenuC = 0;
                     } elseif (!$isFirstMenu) {
                         $out .= '</li><li>';
                     }
                 }
                 /*var_dump($menu_item);*/
                 $class_names = '';
                 global $post;
                 $pageId = $post->ID;
                 if ($menu_item->object_id == $pageId) {
                     $class_names = 'active ';
                 }
                 $class_names .= implode(' ', $menu_item->classes);
                 if (!$isSubMenu && $hasChildMenu) {
                     $out .= '<a href="' . $menu_item->url . '" class="' . $class_names . '">' . $menu_item->title . '<span class="caret"></span></a>';
                 } else {
                     $out .= '<a href="' . $menu_item->url . '" class="' . $class_names . '">' . $menu_item->title . '</a>';
                 }
                 $isFirstMenu = false;
             }
             if ($isSubMenu) {
                 /* last menu is sub menu */
                 $out .= '</li></ul>';
             }
             $out .= '</li></ul>';
             echo mtheme_html($out);
         } else {
             wp_dropdown_pages();
         }
     } else {
         wp_dropdown_pages();
     }
 }