Make WordPress Core


Ignore:
Timestamp:
11/06/2012 02:46:56 PM (14 years ago)
Author:
duck_
Message:

Correctly associate new menu items with a menu when using wp_update_nav_menu_item()

wp_update_nav_menu_item() must pass tax_input to wp_insert_post() when creating items
otherwise the menu-item relationship isn't made.

See #22189.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/nav-menu.php

    r22235 r22399  
    348348        );
    349349
    350         if ( $menu_id && ! is_object_in_term( $menu_item_db_id, 'nav_menu', (int) $menu->term_id ) )
     350        $update = 0 != $menu_item_db_id;
     351
     352        // Only set the menu term if it isn't set to avoid unnecessary wp_get_object_terms()
     353        if ( $menu_id && ( ! $update || ! is_object_in_term( $menu_item_db_id, 'nav_menu', (int) $menu->term_id ) ) )
    351354                $post['tax_input'] = array( 'nav_menu' => array( intval( $menu->term_id ) ) );
    352 
    353         $update = 0 != $menu_item_db_id;
    354355
    355356        // New menu item. Default is draft status
Note: See TracChangeset for help on using the changeset viewer.