WordPress.org

Make WordPress Core

Ticket #14330: 14330.patch

File 14330.patch, 1.4 KB (added by hakre, 4 years ago)

Secondary approach

  • wp-includes/classes.php

     
    274274                                $this->query_vars[$wpvar] = $perma_query_vars[$wpvar]; 
    275275 
    276276                        if ( !empty( $this->query_vars[$wpvar] ) ) { 
    277                                 $this->query_vars[$wpvar] = (string) $this->query_vars[$wpvar]; 
     277                                !is_array( $this->query_vars[$wpvar] ) && ( $this->query_vars[$wpvar] = array( $this->query_vars[$wpvar] ) ); 
     278                                $this->query_vars[$wpvar] = array_map( 'strval', $this->query_vars[$wpvar] ); 
    278279                                if ( isset( $taxonomy_query_vars[$wpvar] ) ) { 
    279280                                        $this->query_vars['taxonomy'] = $taxonomy_query_vars[$wpvar]; 
    280281                                        $this->query_vars['term'] = $this->query_vars[$wpvar]; 
     
    288289                // Limit publicly queried post_types to those that are publicly_queryable 
    289290                if ( isset( $this->query_vars['post_type']) ) { 
    290291                        $queryable_post_types =  get_post_types( array('publicly_queryable' => true) ); 
    291                         if ( ! in_array( $this->query_vars['post_type'], $queryable_post_types ) ) 
    292                                 unset( $this->query_vars['post_type'] ); 
     292                        !is_array( $this->query_vars['post_type'] ) && ( $this->query_vars['post_type'] = array( $this->query_vars['post_type'] ) ); 
     293                        $this->query_vars['post_type'] = array_intersect( $this->query_vars['post_type'], $queryable_post_types ); 
    293294                } 
    294295 
    295296                foreach ( (array) $this->private_query_vars as $var) {