$item) { $items[$item_id]->advanced_menu_info = array( 'first_item' => false, 'last_item' => false ); $sorted_item_id = $item->menu_item_parent + ($item->menu_order / 10000); $sorted_items[(string)$sorted_item_id] = $item_id; } ksort($sorted_items); $previous_item_parent_id = false; $previous_item_id = false; $total_items = count($sorted_items); $menu_order = 1; foreach ($sorted_items as $sorted_item_id => $item_id) { $item_count++; $parent_item_id = (int) $sorted_item_id; if ($parent_item_id !== $previous_item_parent_id) { $menu_order = 1; $items[$item_id]->advanced_menu_info['first_item'] = true; if ($items[$previous_item_id]) $items[$previous_item_id]->advanced_menu_info['last_item'] = true; } if ($total_items == $item_count) $items[$item_id]->advanced_menu_info['last_item'] = true; $items[$item_id]->advanced_menu_info['menu_order'] = $menu_order; $previous_item_id = $item_id; $previous_item_parent_id = $parent_item_id; $menu_order++; } return $items; } /** * Parses shortcodes on a string * * @since 0.2 * * @param $list string HTML string to be parsed */ public function parse_shortcodes($list) { $current_user = wp_get_current_user(); $shortcodes = array( // Current logged-in user '[%user_login%]' => $current_user->user_login, '[%user_ID%]' => $current_user->ID, '[%user_firstname%]' => $current_user->user_firstname, '[%user_lastname%]' => $current_user->user_lastname, '[%user_displayname%]' => $current_user->display_name, '[%user_email%]' => $current_user->user_email, // Date and time '[%date%]' => date_i18n(get_option('date_format')), ); $list = str_replace(array_keys($shortcodes), $shortcodes, $list); return $list; } } /** * 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