WordPress.org

Make WordPress Core

Ticket #16622: 16622.3.diff

File 16622.3.diff, 1.8 KB (added by markjaquith, 9 years ago)
  • wp-includes/query.php

     
    12311231        var $is_post_type_archive = false;
    12321232
    12331233        /**
    1234          * Whether the tax query has been parsed once.
     1234         * Stores the ->query_vars state like md5(serialize( $this->query_vars ) ) so we know
     1235         * whether we have to re-parse because something has changed
    12351236         *
    12361237         * @since 3.1.0
    12371238         * @access private
    1238          * @var bool
    12391239         */
    1240         var $parsed_tax_query = false;
     1240        var $query_vars_hash = false;
    12411241
    12421242        /**
    12431243         * Resets query flags to false.
     
    14961496                                $this->is_date = true;
    14971497                        }
    14981498
    1499                         $this->parsed_tax_query = false;
     1499                        $this->query_vars_hash = false;
    15001500                        $this->parse_tax_query( $qv );
    15011501
    15021502                        foreach ( $this->tax_query->queries as $tax_query ) {
     
    16821682                }
    16831683
    16841684                // Category stuff
    1685                 if ( !empty($q['cat']) && '0' != $q['cat'] && !$this->is_singular && !$this->parsed_tax_query ) {
     1685                if ( !empty($q['cat']) && '0' != $q['cat'] && !$this->is_singular && md5(serialize( $this->query_vars ) ) != $this->query_vars_hash ) {
    16861686                        $q['cat'] = ''.urldecode($q['cat']).'';
    16871687                        $q['cat'] = addslashes_gpc($q['cat']);
    16881688                        $cat_array = preg_split('/[,\s]+/', $q['cat']);
     
    17361736                }
    17371737
    17381738                // Tag stuff
    1739                 if ( '' != $q['tag'] && !$this->is_singular && !$this->parsed_tax_query ) {
     1739                if ( '' != $q['tag'] && !$this->is_singular && md5(serialize( $this->query_vars ) ) != $this->query_vars_hash ) {
    17401740                        if ( strpos($q['tag'], ',') !== false ) {
    17411741                                $tags = preg_split('/[,\s]+/', $q['tag']);
    17421742                                foreach ( (array) $tags as $tag ) {
     
    18081808                        );
    18091809                }
    18101810
    1811                 $this->parsed_tax_query = true;
     1811                $this->query_vars_hash = md5(serialize( $this->query_vars ) );
    18121812
    18131813                $this->tax_query = new WP_Tax_Query( $tax_query );
    18141814        }