Ticket #22189: 22189.term-cache.diff

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

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

Line 
1Index: wp-includes/nav-menu-template.php
2===================================================================
3--- wp-includes/nav-menu-template.php   (revision 22231)
4+++ wp-includes/nav-menu-template.php   (working copy)
5@@ -155,7 +155,7 @@
6        if ( ! $menu && !$args->theme_location ) {
7                $menus = wp_get_nav_menus();
8                foreach ( $menus as $menu_maybe ) {
9-                       if ( $menu_items = wp_get_nav_menu_items($menu_maybe->term_id) ) {
10+                       if ( $menu_items = wp_get_nav_menu_items( $menu_maybe->term_id, array( 'update_post_term_cache' => false ) ) ) {
11                                $menu = $menu_maybe;
12                                break;
13                        }
14@@ -164,7 +164,7 @@
15 
16        // If the menu exists, get its items.
17        if ( $menu && ! is_wp_error($menu) && !isset($menu_items) )
18-               $menu_items = wp_get_nav_menu_items( $menu->term_id );
19+               $menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );
20 
21        /*
22         * If no menu was found:
23Index: wp-includes/nav-menu.php
24===================================================================
25--- wp-includes/nav-menu.php    (revision 22231)
26+++ wp-includes/nav-menu.php    (working copy)
27@@ -483,8 +483,7 @@
28                return $items;
29 
30        $defaults = array( 'order' => 'ASC', 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item',
31-               'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true,
32-               'update_post_term_cache' => false );
33+               'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true );
34        $args = wp_parse_args( $args, $defaults );
35        if ( count( $items ) > 1 )
36                $args['include'] = implode( ',', $items );