WordPress.org

Make WordPress Core

Ticket #16545: 16545.diff

File 16545.diff, 2.1 KB (added by ryan, 4 years ago)
  • wp-includes/query.php

     
    12401240        var $parsed_tax_query = false; 
    12411241 
    12421242        /** 
     1243         * Whether the query has been parsed once. 
     1244         * 
     1245         * @since 3.1.0 
     1246         * @access private 
     1247         * @var bool 
     1248         */ 
     1249        var $parsed_query = false; 
     1250 
     1251        /** 
    12431252         * Resets query flags to false. 
    12441253         * 
    12451254         * The query flags are what page info WordPress was able to figure out. 
     
    13121321         * @access public 
    13131322         */ 
    13141323        function parse_query_vars() { 
    1315                 $this->parse_query(''); 
     1324                $this->parse_query(); 
    13161325        } 
    13171326 
    13181327        /** 
     
    13831392         * @since 1.5.0 
    13841393         * @access public 
    13851394         * 
    1386          * @param string|array $query 
     1395         * @param string|array $query Optional query. 
    13871396         */ 
    1388         function parse_query($query) { 
    1389                 if ( !empty($query) || !isset($this->query) ) { 
     1397        function parse_query( $query =  '' ) { 
     1398                if ( ! empty( $query ) ) { 
    13901399                        $this->init(); 
    1391                         $this->query = $this->query_vars = wp_parse_args($query); 
     1400                        $this->query = $this->query_vars = wp_parse_args( $query ); 
     1401                } elseif ( ! isset( $this->query ) ) { 
     1402                        $this->query = $this->query_vars; 
    13921403                } 
    13931404 
    13941405                $this->query_vars = $this->fill_query_vars($this->query_vars); 
     
    16251636                if ( '404' == $qv['error'] ) 
    16261637                        $this->set_404(); 
    16271638 
     1639                // Mark the query as parsed 
     1640                $this->parsed_query = true; 
     1641 
    16281642                if ( !empty($query) ) 
    16291643                        do_action_ref_array('parse_query', array(&$this)); 
    16301644        } 
     
    18711885        function &get_posts() { 
    18721886                global $wpdb, $user_ID, $_wp_using_ext_object_cache; 
    18731887 
     1888                // If we haven't parsed the query already, we should do that now 
     1889                if ( ! $this->parsed_query ) 
     1890                        $this->parse_query(); 
     1891 
     1892                $this->parsed_query = false; // Reset it 
     1893 
    18741894                do_action_ref_array('pre_get_posts', array(&$this)); 
    18751895 
    18761896                // Shorthand. 
     
    28512871         * @param string $query URL query string. 
    28522872         * @return array List of posts. 
    28532873         */ 
    2854         function &query($query) { 
    2855                 $this->parse_query($query); 
     2874        function &query( $query ) { 
     2875                $this->init(); 
     2876                $this->query = $this->query_vars = wp_parse_args( $query ); 
    28562877                return $this->get_posts(); 
    28572878        } 
    28582879