Make WordPress Core

Changeset 22399


Ignore:
Timestamp:
11/06/2012 02:46:56 PM (13 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.