Make WordPress Core


Ignore:
Timestamp:
04/28/2010 08:44:08 PM (15 years ago)
Author:
nacin
Message:

Fix handling of nav menu search, also menu naming conflicts. props filosofo, fixes #13138

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/nav-menus.php

    r14278 r14285  
    220220
    221221            if ( ! is_wp_error( $_menu_object ) ) {
    222                 $_menu_object = wp_get_nav_menu_object( wp_update_nav_menu_object( $nav_menu_selected_id, array( 'menu-name' => $_POST['menu-name'] ) ) );
    223                 $nav_menu_selected_title = $_menu_object->name;
     222                $_nav_menu_selected_id = wp_update_nav_menu_object( $nav_menu_selected_id, array( 'menu-name' => $_POST['menu-name'] ) );
     223                if ( is_wp_error( $_nav_menu_selected_id ) ) {
     224                    $_menu_object = $_nav_menu_selected_id;
     225                    $messages_div = '<div id="message" class="error"><p>' . $_nav_menu_selected_id->get_error_message() . '</p></div>';
     226                } else {
     227                    $_menu_object = wp_get_nav_menu_object( $_nav_menu_selected_id );
     228                    $nav_menu_selected_title = $_menu_object->name;
     229                }
    224230            }
    225231
     
    230236
    231237                // Loop through all the menu items' POST variables
    232                 foreach( (array) $_POST['menu-item-db-id'] as $_key => $k ) {
    233 
    234                     // Menu item title can't be blank
    235                     if ( '' == $_POST['menu-item-title'][$_key] )
    236                         continue;
    237    
    238                     $args = array(
    239                         'menu-item-db-id' => $_POST['menu-item-db-id'][$_key],
    240                         'menu-item-object-id' => $_POST['menu-item-object-id'][$_key],
    241                         'menu-item-object' => $_POST['menu-item-object'][$_key],
    242                         'menu-item-parent-id' => $_POST['menu-item-parent-id'][$_key],
    243                         'menu-item-position' => $_POST['menu-item-position'][$_key],
    244                         'menu-item-type' => $_POST['menu-item-type'][$_key],
    245                         'menu-item-append' => $_POST['menu-item-append'][$_key],
    246                         'menu-item-title' => $_POST['menu-item-title'][$_key],
    247                         'menu-item-url' => $_POST['menu-item-url'][$_key],
    248                         'menu-item-description' => $_POST['menu-item-description'][$_key],
    249                         'menu-item-attr-title' => $_POST['menu-item-attr-title'][$_key],
    250                         'menu-item-target' => $_POST['menu-item-target'][$_key],
    251                         'menu-item-classes' => $_POST['menu-item-classes'][$_key],
    252                         'menu-item-xfn' => $_POST['menu-item-xfn'][$_key],
    253                     );
    254 
    255                     $menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args );
    256 
    257                     if ( ! is_wp_error( $menu_item_db_id ) && isset( $menu_items[$menu_item_db_id] ) ) {
    258                         unset( $menu_items[$menu_item_db_id] );
     238                if ( ! empty( $_POST['menu-item-db-id'] ) ) {
     239                    foreach( (array) $_POST['menu-item-db-id'] as $_key => $k ) {
     240
     241                        // Menu item title can't be blank
     242                        if ( '' == $_POST['menu-item-title'][$_key] )
     243                            continue;
     244       
     245                        $args = array(
     246                            'menu-item-db-id' => $_POST['menu-item-db-id'][$_key],
     247                            'menu-item-object-id' => $_POST['menu-item-object-id'][$_key],
     248                            'menu-item-object' => $_POST['menu-item-object'][$_key],
     249                            'menu-item-parent-id' => $_POST['menu-item-parent-id'][$_key],
     250                            'menu-item-position' => $_POST['menu-item-position'][$_key],
     251                            'menu-item-type' => $_POST['menu-item-type'][$_key],
     252                            'menu-item-append' => $_POST['menu-item-append'][$_key],
     253                            'menu-item-title' => $_POST['menu-item-title'][$_key],
     254                            'menu-item-url' => $_POST['menu-item-url'][$_key],
     255                            'menu-item-description' => $_POST['menu-item-description'][$_key],
     256                            'menu-item-attr-title' => $_POST['menu-item-attr-title'][$_key],
     257                            'menu-item-target' => $_POST['menu-item-target'][$_key],
     258                            'menu-item-classes' => $_POST['menu-item-classes'][$_key],
     259                            'menu-item-xfn' => $_POST['menu-item-xfn'][$_key],
     260                        );
     261
     262                        $menu_item_db_id = wp_update_nav_menu_item( $nav_menu_selected_id, ( $_POST['menu-item-db-id'][$_key] != $_key ? 0 : $_key ), $args );
     263
     264                        if ( ! is_wp_error( $menu_item_db_id ) && isset( $menu_items[$menu_item_db_id] ) ) {
     265                            unset( $menu_items[$menu_item_db_id] );
     266                        }
    259267                    }
    260268                }
Note: See TracChangeset for help on using the changeset viewer.