From: Steve Sutton Date: Thu, 9 Jul 2015 14:52:34 +0000 (-0400) Subject: Rework how the side navigation is done X-Git-Tag: v1.0.0~49^2~134 X-Git-Url: http://cvs2.gaslightmedia.com/gitweb/?a=commitdiff_plain;h=2a91a4d3ff69b547c782c340643b5a051c5e761e;p=WP-Themes%2Fcrawfordco.git Rework how the side navigation is done Add anchor tag with url for the title of the side navigation. When a menu item appears for a page more than once it was overriding the correct menu. I'm now building an array of matches for the page to menu items. The one I want is the one that has sub items. --- diff --git a/functions.php b/functions.php index 742b6da..be519c5 100644 --- a/functions.php +++ b/functions.php @@ -202,8 +202,7 @@ function glm_get_header() { */ function glm_side_menu() { global $post; - //var_dump($post->ID); - $sideMenu = $allMenu = array(); + $sideMenu = $allMenu = $pageMenuId = array(); if (($locations = get_nav_menu_locations()) && isset($locations['top-bar'])) { $menu = wp_get_nav_menu_object($locations['top-bar']); $menu_items = wp_get_nav_menu_items($menu->term_id); @@ -211,23 +210,34 @@ function glm_side_menu() { $sideMenu[$menu_item->menu_item_parent][] = $menu_item; $allMenu[$menu_item->ID] = $menu_item; if ($menu_item->object_id == $post->ID) { - $thisPageMenuId = $menu_item->ID; - //var_dump($thisPageMenuId); - $thisPageMenuParent = $menu_item->menu_item_parent; + $pageMenuId[] = $menu_item; } } - //echo '
'.print_r($sideMenu, true).'
'; - //echo '
'.print_r($sideMenu, true).'
'; + if (count($pageMenuId) > 1) { + //echo '
'.print_r($pageMenuId, true).'
'; + foreach ($pageMenuId as $men) { + if (isset($sideMenu[$men->ID]) && !empty($sideMenu[$men->ID])) { + $thisPageMenuId = $men->ID; + $thisPageMenuParent = $men->menu_item_parent; + } + } + } else { + $thisPageMenuId = $pageMenuId[0]->ID; + $thisPageMenuParent = $pageMenuId[0]->menu_item_parent; + } // does the current page (in the menu) have sub menu items? if (isset($sideMenu[$thisPageMenuId]) && !empty($sideMenu[$thisPageMenuId])) { $pageHead = $allMenu[$thisPageMenuId]; $side_menu = $sideMenu[$thisPageMenuId]; - } else { + } else if ($thisPageMenuParent) { $pageHead = $allMenu[$thisPageMenuParent]; $side_menu = $sideMenu[$thisPageMenuParent]; + } else { + $pageHead = $allMenu[0]; + $side_menu = $sideMenu[0]; } } - echo '

'.$pageHead->title.'

'; + echo '

'.$pageHead->title.'

'; echo '