Make WordPress Core

Ticket #22189: 22189.term-cache.diff

File 22189.term-cache.diff, 1.6 KB (added by nacin, 13 years ago)

Prime term caches in wp_get_nav_menu_items() outside of nav-menu-template.php.

  • wp-includes/nav-menu-template.php

     
    155155        if ( ! $menu && !$args->theme_location ) {
    156156                $menus = wp_get_nav_menus();
    157157                foreach ( $menus as $menu_maybe ) {
    158                         if ( $menu_items = wp_get_nav_menu_items($menu_maybe->term_id) ) {
     158                        if ( $menu_items = wp_get_nav_menu_items( $menu_maybe->term_id, array( 'update_post_term_cache' => false ) ) ) {
    159159                                $menu = $menu_maybe;
    160160                                break;
    161161                        }
     
    164164
    165165        // If the menu exists, get its items.
    166166        if ( $menu && ! is_wp_error($menu) && !isset($menu_items) )
    167                 $menu_items = wp_get_nav_menu_items( $menu->term_id );
     167                $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );
    168168
    169169        /*
    170170         * If no menu was found:
  • wp-includes/nav-menu.php

     
    483483                return $items;
    484484
    485485        $defaults = array( 'order' => 'ASC', 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item',
    486                 'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true,
    487                 'update_post_term_cache' => false );
     486                'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true );
    488487        $args = wp_parse_args( $args, $defaults );
    489488        if ( count( $items ) > 1 )
    490489                $args['include'] = implode( ',', $items );