WordPress.org

Make WordPress Core

Ticket #13782: #13782.patch

File #13782.patch, 1.8 KB (added by arena, 5 years ago)
  • wp-includes/query.php

     
    11111111        var $is_posts_page = false; 
    11121112 
    11131113        /** 
     1114         * Set if query must be strictly what it is asked to do. 
     1115         * 
     1116         * Set if query is strict. 
     1117         * 
     1118         * @since 3.x.x 
     1119         * @access public 
     1120         * @var bool 
     1121         */ 
     1122        var $is_strict = false; 
     1123 
     1124        /** 
    11141125         * Resets query flags to false. 
    11151126         * 
    11161127         * The query flags are what page info WordPress was able to figure out. 
     
    11431154                $this->is_singular = false; 
    11441155                $this->is_robots = false; 
    11451156                $this->is_posts_page = false; 
     1157                $this->is_strict = false; 
    11461158        } 
    11471159 
    11481160        /** 
     
    12181230                        , 'preview' 
    12191231                        , 's' 
    12201232                        , 'sentence' 
     1233                        , 'strict' 
    12211234                ); 
    12221235 
    12231236                foreach ( $keys as $key ) { 
     
    12821295 
    12831296                $qv['attachment_id'] = absint($qv['attachment_id']); 
    12841297 
     1298                if ( isset($qv['strict']) && $qv['strict'] ) 
     1299                        $this->is_strict = true; 
     1300 
    12851301                if ( ('' != $qv['attachment']) || !empty($qv['attachment_id']) ) { 
    12861302                        $this->is_single = true; 
    12871303                        $this->is_attachment = true; 
     
    18721888 
    18731889                if ( empty($q['cat']) || ($q['cat'] == '0') || 
    18741890                                // Bypass cat checks if fetching specific posts 
    1875                                 $this->is_singular ) { 
     1891                                ($this->is_singular && !$this->is_strict) ) { 
    18761892                        $whichcat = ''; 
    18771893                } else { 
    18781894                        $q['cat'] = ''.urldecode($q['cat']).''; 
     
    19091925                } 
    19101926 
    19111927                // Category stuff for nice URLs 
    1912                 if ( '' != $q['category_name'] && !$this->is_singular ) { 
     1928                if ( '' != $q['category_name'] && (!$this->is_singular || $this->is_strict) ) { 
    19131929                        $q['category_name'] = implode('/', array_map('sanitize_title', explode('/', $q['category_name']))); 
    19141930                        $reqcat = get_category_by_path($q['category_name']); 
    19151931                        $q['category_name'] = str_replace('%2F', '/', urlencode(urldecode($q['category_name'])));