Make WordPress Core

Ticket #18271: 18271.diff

File 18271.diff, 3.6 KB (added by pento, 11 years ago)
  • src/wp-admin/includes/nav-menu.php

     
    293293                $possible_object_id = isset( $item->post_type ) && 'nav_menu_item' == $item->post_type ? $item->object_id : $_nav_menu_placeholder;
    294294                $possible_db_id = ( ! empty( $item->ID ) ) && ( 0 < $possible_object_id ) ? (int) $item->ID : 0;
    295295
     296                if ( ! empty( $item->post_parent ) ) {
     297                        $parent_object_id = $item->post_parent;
     298                } else if ( ! empty( $item->parent ) ) {
     299                        $parent_object_id = $item->parent;
     300                } else {
     301                        $parent_object_id = 0;
     302                }
     303
    296304                $indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
    297305
    298306                $output .= $indent . '<li>';
     
    320328                $output .= '<input type="hidden" class="menu-item-db-id" name="menu-item[' . $possible_object_id . '][menu-item-db-id]" value="' . $possible_db_id . '" />';
    321329                $output .= '<input type="hidden" class="menu-item-object" name="menu-item[' . $possible_object_id . '][menu-item-object]" value="'. esc_attr( $item->object ) .'" />';
    322330                $output .= '<input type="hidden" class="menu-item-parent-id" name="menu-item[' . $possible_object_id . '][menu-item-parent-id]" value="'. esc_attr( $item->menu_item_parent ) .'" />';
     331                $output .= '<input type="hidden" class="menu-item-parent-object-id" name="menu-item[' . $possible_object_id . '][menu-item-parent-object-id]" value="'. esc_attr( $parent_object_id ) .'" />';
    323332                $output .= '<input type="hidden" class="menu-item-type" name="menu-item[' . $possible_object_id . '][menu-item-type]" value="'. esc_attr( $item->type ) .'" />';
    324333                $output .= '<input type="hidden" class="menu-item-title" name="menu-item[' . $possible_object_id . '][menu-item-title]" value="'. esc_attr( $item->title ) .'" />';
    325334                $output .= '<input type="hidden" class="menu-item-url" name="menu-item[' . $possible_object_id . '][menu-item-url]" value="'. esc_attr( $item->url ) .'" />';
     
    10471056        $items_saved = array();
    10481057
    10491058        if ( 0 == $menu_id || is_nav_menu( $menu_id ) ) {
     1059                $menu_data_values = array_values( $menu_data );
    10501060
    10511061                // Loop through all the menu items' POST values.
    10521062                foreach( (array) $menu_data as $_possible_db_id => $_item_object_data ) {
     
    10781088                                $_actual_db_id = (int) $_item_object_data['menu-item-db-id'];
    10791089                        }
    10801090
     1091                        if ( empty( $_item_object_data['menu-item-parent-id'] ) && ! empty( $_item_object_data['menu-item-parent-object-id'] ) ) {
     1092                                for( $saved_id = 0; $saved_id < count( $items_saved ); $saved_id++ ) {
     1093                                        if (
     1094                                                $_item_object_data['menu-item-type'] === $menu_data_values[ $saved_id ]['menu-item-type'] &&
     1095                                                $_item_object_data['menu-item-object'] === $menu_data_values[ $saved_id ]['menu-item-object'] &&
     1096                                                $_item_object_data['menu-item-parent-object-id'] === $menu_data_values[ $saved_id ]['menu-item-object-id']
     1097                                        ) {
     1098                                                $_item_object_data['menu-item-parent-id'] = $items_saved[ $saved_id ];
     1099                                        }
     1100                                }
     1101                        }
     1102
    10811103                        $args = array(
    10821104                                'menu-item-db-id' => ( isset( $_item_object_data['menu-item-db-id'] ) ? $_item_object_data['menu-item-db-id'] : '' ),
    10831105                                'menu-item-object-id' => ( isset( $_item_object_data['menu-item-object-id'] ) ? $_item_object_data['menu-item-object-id'] : '' ),
  • src/wp-admin/js/nav-menu.js

     
    207207                                                'menu-item-object-id',
    208208                                                'menu-item-object',
    209209                                                'menu-item-parent-id',
     210                                                'menu-item-parent-object-id',
    210211                                                'menu-item-position',
    211212                                                'menu-item-type',
    212213                                                'menu-item-title',