WordPress.org

Make WordPress Core

Ticket #16545: 16545.diff

File 16545.diff, 2.1 KB (added by ryan, 7 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