function shiftnav_get_menu_items_data($menu_id = -1) { if ($menu_id == -1) { global $nav_menu_selected_id; $menu_id = $nav_menu_selected_id; } if ($menu_id == 0) { return array(); } $shiftnav_menu_data = array(); $menu_items = wp_get_nav_menu_items($menu_id, array('post_status' => 'any')); foreach ($menu_items as $item) { $_item_settings = shiftnav_get_menu_item_data($item->ID); if ($_item_settings != '') { $shiftnav_menu_data[$item->ID] = $_item_settings; } } //shiftp( $shiftnav_menu_data ); return $shiftnav_menu_data; }
/** * Traverse elements to create list from elements. * * Calls parent function in UberMenuWalker.class.php */ function display_element($element, &$children_elements, $max_depth, $depth = 0, $args, &$output) { if (!$element) { return; } $id_field = $this->db_fields['id']; $id = $element->{$id_field}; $data = shiftnav_get_menu_item_data($id); //If the item is disabled, kill its children, Lannister-style if (isset($data['disable_item']) && $data['disable_item'] == 'on') { $this->clear_children($children_elements, $id); return; } //UberMenu Conditionals if (shiftnav_op('inherit_ubermenu_conditionals', 'general') == 'on') { if (function_exists('ubermenu')) { $has_children = !empty($children_elements[$element->{$id_field}]); if (isset($args[0]) && is_array($args[0])) { $args[0]['has_children'] = $has_children; } $cb_args = array_merge(array(&$output, $element, $depth), $args); $umitem_obect_class = apply_filters('ubermenu_item_object_class', 'UberMenuItemDefault', $element, $id, $this->auto_child); $umitem = new $umitem_obect_class($output, $element, $depth, $cb_args[3], $id, $this, $has_children); //The $args that get passed to start_el are $cb[3] -- i.e. the 4the element in the array merged above $display_on = apply_filters('ubermenu_display_item', true, $this, $element, $max_depth, $depth, $args, $umitem); } else { $display_on = apply_filters('uberMenu_display_item', true, $this, $element, $max_depth, $depth, $args); } if (!$display_on) { $this->clear_children($children_elements, $id); return; } } Walker_Nav_Menu::display_element($element, $children_elements, $max_depth, $depth, $args, $output); }