Make WordPress Core

Ticket #27042: nav-menu.php.37802.WP_QUERY.patch

File nav-menu.php.37802.WP_QUERY.patch, 1.6 KB (added by ruud@…, 8 years ago)

patch using WP_QUERY instead of query_posts()

  • nav-menu.php

     
    7070
    7171        } elseif ( preg_match('/quick-search-(posttype|taxonomy)-([a-zA-Z_-]*\b)/', $type, $matches) ) {
    7272                if ( 'posttype' == $matches[1] && get_post_type_object( $matches[2] ) ) {
    73                         query_posts(array(
     73                        $search_results_query = new WP_Query( array(
     74                                'no_found_rows' => true,
     75                                'update_post_meta_cache' => false,
     76                                'update_post_term_cache' => false,
    7477                                'posts_per_page' => 10,
    7578                                'post_type' => $matches[2],
    7679                                's' => $query,
    77                         ));
    78                         if ( ! have_posts() )
     80                        ) );
     81                        if ( ! $search_results_query->have_posts() ) {
    7982                                return;
    80                         while ( have_posts() ) {
    81                                 the_post();
     83                        }
     84                        while ( $search_results_query->have_posts() ) {
     85                                $post = $search_results_query->next_post();
    8286                                if ( 'markup' == $response_format ) {
    83                                         $var_by_ref = get_the_ID();
     87                                        $var_by_ref = $post->ID;
    8488                                        echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', array( get_post( $var_by_ref ) ) ), 0, (object) $args );
    8589                                } elseif ( 'json' == $response_format ) {
    8690                                        echo wp_json_encode(
    8791                                                array(
    88                                                         'ID' => get_the_ID(),
    89                                                         'post_title' => get_the_title(),
    90                                                         'post_type' => get_post_type(),
     92                                                        'ID' => $post->ID,
     93                                                        'post_title' => get_the_title( $post->ID ),
     94                                                        'post_type' => $matches[2],
    9195                                                )
    9296                                        );
    9397                                        echo "\n";
    9498                                }
    95                         }
     99                        }       
    96100                } elseif ( 'taxonomy' == $matches[1] ) {
    97101                        $terms = get_terms( $matches[2], array(
    98102                                'name__like' => $query,