WordPress.org

Make WordPress Core

Ticket #13782: #13782.patch

File #13782.patch, 1.8 KB (added by arena, 8 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'])));