From 8594263c99fabbe9adf044d45da5901a5ea2778a Mon Sep 17 00:00:00 2001 From: Joshua Roy Date: Tue, 4 Aug 2015 15:38:27 -0400 Subject: [PATCH] Nav fixes --- inc/nav-drop-multi-walker.php | 64 --- inc/nav-tabs-walker.php | 728 ++++++++++++++++------------------ inc/nav-tabs.php | 320 ++++++++------- inc/nav-walker.php | 2 +- 4 files changed, 507 insertions(+), 607 deletions(-) diff --git a/inc/nav-drop-multi-walker.php b/inc/nav-drop-multi-walker.php index e942b12..2a2bbc6 100644 --- a/inc/nav-drop-multi-walker.php +++ b/inc/nav-drop-multi-walker.php @@ -167,68 +167,4 @@ function display_element ($element, &$children_elements, $max_depth, $depth = 0, } } } -// add hook -add_filter( 'wp_nav_menu_objects', 'my_drop_multi_nav_menu_objects_sub_menu', 10, 2 ); - -// filter_hook function to react on sub_menu flag -function my_drop_multi_nav_menu_objects_sub_menu( $sorted_menu_items, $args ) { - if ( isset( $args->sub_menu ) ) { - - - $root_id = 0; - $root_level = 0; - $parent_id = 0; - $second_level_parent = 0; - $newmenu = array(); - $level = 0; - $stack = array('0'); - foreach($sorted_menu_items as $key => $menu_item) { - while(in_array($menu_item->menu_item_parent, $stack) && $menu_item->menu_item_parent != array_pop($stack)) { - $level--; - } - $level++; - $stack[] = $menu_item->menu_item_parent; - $stack[] = $menu_item->ID; - $sorted_menu_items[$key]->level = $level; - if(!isset($newmenu[$level])){ - $newmenu[$level] = array(); - } - $newmenu[$level][$menu_item->ID] = $menu_item->menu_item_parent; - - if ( $menu_item->current ) { - // set the root id based on whether the current menu item has a parent or not - $root_id = $menu_item->ID; - $root_level = $level; - $parent_id = $menu_item->menu_item_parent; - } - } - if($root_level == 2){ - $second_level_parent = $root_id; - } - elseif($root_level == 3){ - $second_level_parent = $parent_id; - } - elseif($root_level == 4){ - $second_level_parent = $newmenu[3][$parent_id]; - } - else return array(); - if( isset($newmenu[3]) && is_array($newmenu[3]) ){ - foreach($newmenu[3] as $id=>$menu_item){ - if($menu_item != $second_level_parent) unset($newmenu[3][$id]); - } - } - if( isset($newmenu[4]) && is_array($newmenu[4]) ){ - foreach($newmenu[4] as $id=>$menu_item){ - if(!isset($newmenu[3][$menu_item])) unset($newmenu[4][$id]); - } - } - foreach($sorted_menu_items as $key => $menu_item) { - if(!isset($newmenu[3][$menu_item->ID]) && !isset($newmenu[4][$menu_item->ID])) unset($sorted_menu_items[$key]); - } - return $sorted_menu_items; - } else { - return $sorted_menu_items; - } -} - ?> \ No newline at end of file diff --git a/inc/nav-tabs-walker.php b/inc/nav-tabs-walker.php index 311e7f9..cf7dacd 100644 --- a/inc/nav-tabs-walker.php +++ b/inc/nav-tabs-walker.php @@ -1,397 +1,333 @@ -object_id); - if($parent !== false) $page = $parent; - else $page = $item->object_id; - $private = get_post_meta($page, 'uc-private', true); - if($private == 'admins' || $private == 'users' || $private == 'list'){ - return true; - } - else{ - return false; - } - } - /* Start of the