megamenu = get_post_meta( $menu_item->ID, '_menu_item_megamenu', true ); $menu_item->megamenu_page = get_post_meta( $menu_item->ID, '_menu_item_megamenu_page', true ); $menu_item->font_icon = get_post_meta( $menu_item->ID, '_menu_item_font_icon', true ); $menu_item->label_custom = get_post_meta( $menu_item->ID, '_menu_item_label_custom', true ); $menu_item->label_color = get_post_meta( $menu_item->ID, '_menu_item_label_color', true ); return $menu_item; } /** * Save custom menu items * @param int $menu_id * @param int $menu_item_db_id * @param array $args */ function save_custom_menu_items( $menu_id, $menu_item_db_id, $args ) { if (!isset($_REQUEST['edit-menu-item-megamenu'][$menu_item_db_id])) { $_REQUEST['edit-menu-item-megamenu'][$menu_item_db_id] = ''; } $menu_mega_enabled_value = $_REQUEST['edit-menu-item-megamenu'][$menu_item_db_id]; update_post_meta( $menu_item_db_id, '_menu_item_megamenu', $menu_mega_enabled_value ); if (!isset($_REQUEST['edit-menu-item-megamenu_page'][$menu_item_db_id])) { $_REQUEST['edit-menu-item-megamenu_page'][$menu_item_db_id] = ''; } $menu_mega_page_enabled_value = $_REQUEST['edit-menu-item-megamenu_page'][$menu_item_db_id]; update_post_meta( $menu_item_db_id, '_menu_item_megamenu_page', $menu_mega_page_enabled_value ); if (!isset($_REQUEST['edit-menu-item-font_icon'][$menu_item_db_id])) { $_REQUEST['edit-menu-item-font_icon'][$menu_item_db_id] = ''; } $font_icon_value = $_REQUEST['edit-menu-item-font_icon'][$menu_item_db_id]; update_post_meta( $menu_item_db_id, '_menu_item_font_icon', $font_icon_value ); if (!isset($_REQUEST['edit-menu-item-label'][$menu_item_db_id])) { $_REQUEST['edit-menu-item-label'][$menu_item_db_id] = ''; } $label_custom_value = $_REQUEST['edit-menu-item-label_custom'][$menu_item_db_id]; update_post_meta( $menu_item_db_id, '_menu_item_label_custom', $label_custom_value ); if (!isset($_REQUEST['edit-menu-item-label_color'][$menu_item_db_id])) { $_REQUEST['edit-menu-item-label_color'][$menu_item_db_id] = ''; } $label_color_value = $_REQUEST['edit-menu-item-label_color'][$menu_item_db_id]; update_post_meta( $menu_item_db_id, '_menu_item_label_color', $label_color_value ); } /** * Return walker name * @return string */ function nav_menu_edit_walker() { return 'Walker_Nav_Menu_Edit_Custom'; } } /** * This is a copy of Walker_Nav_Menu_Edit class in core * * Create HTML list of nav menu input items. * * @package WordPress * @since 3.0.0 * @uses Walker_Nav_Menu */ class Walker_Nav_Menu_Edit_Custom extends Walker_Nav_Menu { /** * @see Walker_Nav_Menu::start_lvl() * @since 3.0.0 * * @param string $output Passed by reference. */ function start_lvl( &$output, $depth = 0, $args = array() ) {} /** * @see Walker_Nav_Menu::end_lvl() * @since 3.0.0 * * @param string $output Passed by reference. */ function end_lvl( &$output, $depth = 0, $args = array() ) {} /** * @see Walker::start_el() * @since 3.0.0 * * @param string $output Passed by reference. Used to append additional content. * @param object $item Menu item data object. * @param int $depth Depth of menu item. Used for padding. * @param object $args */ function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) { global $_wp_nav_menu_max_depth; $_wp_nav_menu_max_depth = $depth > $_wp_nav_menu_max_depth ? $depth : $_wp_nav_menu_max_depth; $indent = ( $depth ) ? str_repeat( "\t", $depth ) : ''; ob_start(); $item_id = esc_attr( $item->ID ); $removed_args = array( 'action', 'customlink-tab', 'edit-menu-item', 'menu-item', 'page-tab', '_wpnonce', ); $original_title = ''; if ( 'taxonomy' == $item->type ) { $original_title = get_term_field( 'name', $item->object_id, $item->object, 'raw' ); if ( is_wp_error( $original_title ) ) $original_title = false; } elseif ( 'post_type' == $item->type ) { $original_object = get_post( $item->object_id ); $original_title = $original_object->post_title; } $classes = array( 'menu-item menu-item-depth-' . $depth, 'menu-item-' . esc_attr( $item->object ), 'menu-item-edit-' . ( ( isset( $_GET['edit-menu-item'] ) && $item_id == $_GET['edit-menu-item'] ) ? 'active' : 'inactive'), ); $title = $item->title; if ( ! empty( $item->_invalid ) ) { $classes[] = 'menu-item-invalid'; /* translators: %s: title of menu item which is invalid */ $title = sprintf( __( '%s (Invalid)','blogup' ), $item->title ); } elseif ( isset( $item->post_status ) && 'draft' == $item->post_status ) { $classes[] = 'pending'; /* translators: %s: title of menu item in draft status */ $title = sprintf( __('%s (Pending)','blogup'), $item->title ); } $title = ( ! isset( $item->label ) || '' == $item->label ) ? $title : $item->label; ?>
'.esc_html($item->label_custom).'
':''; $item_output .= ($depth == 0 && $item->hasChildren || $this->is_multi_columns == true && $item->hasChildren ) ? '':''; $item_output .= ''; //var_dump( $item_output .= $args->after); $item_output .= $args->after; } else { $item_output = ''; } /** * Filter a menu item's starting output. * * The menu item's starting output only includes $args->before, the opening , * the menu item's title, the closing , and $args->after. Currently, there is * no filter for modifying the opening and closing