WordPress.org

Make WordPress Core

Ticket #19744: 19744.patch

File 19744.patch, 1.2 KB (added by johnjamesjacoby, 8 years ago)

Refreshed - added brackets and tweaked whitespace

  • wp-includes/rewrite.php

     
    292292
    293293        // Check to see if we are using rewrite rules
    294294        $rewrite = $wp_rewrite->wp_rewrite_rules();
    295 
     295       
    296296        // Not using rewrite rules, and 'p=N' and 'page_id=N' methods failed, so we're out of options
    297297        if ( empty($rewrite) )
    298298                return 0;
     
    332332
    333333        $request = $url;
    334334
     335        $post_type_query_vars = array();
     336        foreach ( $GLOBALS['wp_post_types'] as $post_type => $t ) {
     337                if ( !empty( $t->query_var ) ) {
     338                        $post_type_query_vars[$t->query_var] = $post_type;
     339                }
     340        }
     341
    335342        // Look for matches.
    336343        $request_match = $request;
    337344        foreach ( (array)$rewrite as $match => $query) {
     
    361368                        parse_str($query, $query_vars);
    362369                        $query = array();
    363370                        foreach ( (array) $query_vars as $key => $value ) {
    364                                 if ( in_array($key, $wp->public_query_vars) )
     371                                if ( in_array( $key, $wp->public_query_vars ) ) {
    365372                                        $query[$key] = $value;
     373                                        if ( isset( $post_type_query_vars[$key] ) ) {
     374                                                $query['post_type'] = $post_type_query_vars[$key];
     375                                                $query['name']      = $value;
     376                                        }                                       
     377                                }
    366378                        }
    367 
     379                       
    368380                        // Do the query
    369381                        $query = new WP_Query($query);
    370382                        if ( !empty($query->posts) && $query->is_singular )