WordPress.org

Make WordPress Core

Ticket #14330: php4-stands-and-elegant-url-array-fix.patch

File php4-stands-and-elegant-url-array-fix.patch, 1.5 KB (added by loushou, 8 years ago)

Patch with brilliance

  • 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                                if ( ! is_array( $this->query_vars[$wpvar] ) ) {
     278                                        $this->query_vars[$wpvar] = (string) $this->query_vars[$wpvar];
     279                                } else {
     280                                        foreach ( $this->query_vars[$wpvar] as $vkey => $v )
     281                                                $this->query_vars[$wpvar][$vkey] = (string) $v;
     282                                }
    278283                                if ( isset( $taxonomy_query_vars[$wpvar] ) ) {
    279284                                        $this->query_vars['taxonomy'] = $taxonomy_query_vars[$wpvar];
    280285                                        $this->query_vars['term'] = $this->query_vars[$wpvar];
     
    288293                // Limit publicly queried post_types to those that are publicly_queryable
    289294                if ( isset( $this->query_vars['post_type']) ) {
    290295                        $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'] );
     296                        if (!is_array($this->query_vars['post_type'])) {
     297                                if ( ! in_array( $this->query_vars['post_type'], $queryable_post_types ) )
     298                                        unset( $this->query_vars['post_type'] );
     299                        } else {
     300                                $this->query_vars['post_type'] = array_intersect( $this->query_vars['post_type'], $queryable_post_types );
     301                        }
    293302                }
    294303
    295304                foreach ( (array) $this->private_query_vars as $var) {