$item) { $item->first_menu_item = false; $item->last_menu_item = false; if ($item->menu_item_parent) { $sub_items[] = &$items[$item_key]; } } $sub_items[array_pop(array_keys($sub_items))]->last_menu_item = true; foreach ($sub_items as $sub_item_key => $sub_item) { if ($previous_menu_parent != $sub_item->menu_item_parent) { $sub_items[$sub_item_key - 1]->last_menu_item = true; $sub_items[$sub_item_key]->first_menu_item = true; $sub_menu_order = 1; } $sub_items[$sub_item_key]->sub_menu_order = $sub_menu_order; $sub_menu_order++; $previous_menu_parent = $sub_item->menu_item_parent; } $items[array_shift(array_keys($items))]->first_menu_item = true; $items[array_pop(array_keys($items))]->last_menu_item = true; return $items; } } /** * Custom ANM walker * * @package AdvancedNavigationMenus * @since 0.1 * @uses Walker_Nav_Menu */ class ANM_Walker_Nav_Menu extends Walker_Nav_Menu { /** * @see Walker_Nav_Menu::start_lvl() * @since 0.1 * * @param string $output Passed by reference. Used to append additional content. * @param int $depth Depth of page. Used for padding. */ function start_lvl(&$output, $depth) { $indent = str_repeat("\t", $depth); $output .= "\n$indent