WordPress.org

Make WordPress Core

Ticket #19744: 19744_1.patch

File 19744_1.patch, 2.6 KB (added by faishal, 9 years ago)

use get_post_types() instead of $GLOBALSwp_post_types? and also replace $GLOBALSwp_post_types? with get_post_types() and $GLOBALSwp_taxonomies? with get_taxonomies() in WP::parse_request() and WP_Query::parse_tax_query()

  • wp-includes/query.php

     
    16991699                        );
    17001700                }
    17011701
    1702                 foreach ( $GLOBALS['wp_taxonomies'] as $taxonomy => $t ) {
     1702                foreach ( get_taxonomies( array() , 'objects' ) as $taxonomy => $t ) {
    17031703                        if ( 'post_tag' == $taxonomy )
    17041704                                continue;       // Handled further down in the $q['tag'] block
    17051705
  • wp-includes/rewrite.php

     
    331331        $url = trim($url, '/');
    332332
    333333        $request = $url;
    334 
     334        $post_type_query_vars = array();
     335       
     336        foreach ( get_post_types( array() , 'objects' ) 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                        }
    367379
    368380                        // Do the query
  • wp-includes/class-wp.php

     
    247247
    248248                $this->public_query_vars = apply_filters('query_vars', $this->public_query_vars);
    249249
    250                 foreach ( $GLOBALS['wp_post_types'] as $post_type => $t )
     250                foreach ( get_post_types(array(),'objects') as $post_type => $t )
    251251                        if ( $t->query_var )
    252252                                $post_type_query_vars[$t->query_var] = $post_type;
    253253
     
    280280                }
    281281
    282282                // Convert urldecoded spaces back into +
    283                 foreach ( $GLOBALS['wp_taxonomies'] as $taxonomy => $t )
     283                foreach ( get_taxonomies( array() , 'objects' ) as $taxonomy => $t )
    284284                        if ( $t->query_var && isset( $this->query_vars[$t->query_var] ) )
    285285                                $this->query_vars[$t->query_var] = str_replace( ' ', '+', $this->query_vars[$t->query_var] );
    286286