Make WordPress Core

Ticket #43891: 43891.diff

File 43891.diff, 3.6 KB (added by rnaby, 7 years ago)

The patch for the issue.

  • src/wp-includes/class-wp-query.php

     
    11611161                        if ( ! isset( $q['category__in'] ) ) {
    11621162                                $q['category__in'] = array();
    11631163                        }
    1164                         $q['category__in'][] = absint( reset( $q['category__and'] ) );
     1164                        $q['category__in'][] = absint( $this->reset( $q['category__and'] ) );
    11651165                        unset( $q['category__and'] );
    11661166                }
    11671167
     
    15041504                        }
    15051505                } else {
    15061506                        // single word or sentence search
    1507                         $search_orderby = reset( $q['search_orderby_title'] ) . ' DESC';
     1507                        $search_orderby = $this->reset( $q['search_orderby_title'] ) . ' DESC';
    15081508                }
    15091509
    15101510                return $search_orderby;
     
    15491549                $primary_meta_query = false;
    15501550                $meta_clauses       = $this->meta_query->get_clauses();
    15511551                if ( ! empty( $meta_clauses ) ) {
    1552                         $primary_meta_query = reset( $meta_clauses );
     1552                        $primary_meta_query = $this->reset( $meta_clauses );
    15531553
    15541554                        if ( ! empty( $primary_meta_query['key'] ) ) {
    15551555                                $primary_meta_key = $primary_meta_query['key'];
     
    23192319                        $post_type_cap = 'multiple_post_type';
    23202320                } else {
    23212321                        if ( is_array( $post_type ) ) {
    2322                                 $post_type = reset( $post_type );
     2322                                $post_type = $this->reset( $post_type );
    23232323                        }
    23242324                        $post_type_object = get_post_type_object( $post_type );
    23252325                        if ( empty( $post_type_object ) ) {
     
    31193119                                update_post_caches( $this->posts, $post_type, $q['update_post_term_cache'], $q['update_post_meta_cache'] );
    31203120                        }
    31213121
    3122                         $this->post = reset( $this->posts );
     3122                        $this->post = $this->reset( $this->posts );
    31233123                } else {
    31243124                        $this->post_count = 0;
    31253125                        $this->posts      = array();
     
    33963396                                // For other tax queries, grab the first term from the first clause.
    33973397                                if ( ! empty( $this->tax_query->queried_terms ) ) {
    33983398                                        $queried_taxonomies = array_keys( $this->tax_query->queried_terms );
    3399                                         $matched_taxonomy   = reset( $queried_taxonomies );
     3399                                        $matched_taxonomy   = $this->reset( $queried_taxonomies );
    34003400                                        $query              = $this->tax_query->queried_terms[ $matched_taxonomy ];
    34013401
    34023402                                        if ( ! empty( $query['terms'] ) ) {
    34033403                                                if ( 'term_id' == $query['field'] ) {
    3404                                                         $term = get_term( reset( $query['terms'] ), $matched_taxonomy );
     3404                                                        $term = get_term( $this->reset( $query['terms'] ), $matched_taxonomy );
    34053405                                                } else {
    3406                                                         $term = get_term_by( $query['field'], reset( $query['terms'] ), $matched_taxonomy );
     3406                                                        $term = get_term_by( $query['field'], $this->reset( $query['terms'] ), $matched_taxonomy );
    34073407                                                }
    34083408                                        }
    34093409                                }
     
    34203420                } elseif ( $this->is_post_type_archive ) {
    34213421                        $post_type = $this->get( 'post_type' );
    34223422                        if ( is_array( $post_type ) ) {
    3423                                 $post_type = reset( $post_type );
     3423                                $post_type = $this->reset( $post_type );
    34243424                        }
    34253425                        $this->queried_object = get_post_type_object( $post_type );
    34263426                } elseif ( $this->is_posts_page ) {
     
    35423542
    35433543                $post_type = $this->get( 'post_type' );
    35443544                if ( is_array( $post_type ) ) {
    3545                         $post_type = reset( $post_type );
     3545                        $post_type = $this->reset( $post_type );
    35463546                }
    35473547                $post_type_object = get_post_type_object( $post_type );
    35483548
     
    42504250                _deprecated_function( __METHOD__, '4.5.0' );
    42514251                return $check;
    42524252        }
     4253
     4254        /**
     4255         * Returns the first element of an array.
     4256         * This is introduced as a replacement
     4257         * of the PHP native function reset()
     4258         * for performance improvement.
     4259         *
     4260         * @since 5.0.0
     4261         *
     4262         * @param array $array
     4263         *
     4264         * @return mixed
     4265         */
     4266        private function reset( $array ) {
     4267                foreach ( $array as $element ) {
     4268                        return $element;
     4269                }
     4270        }
    42534271}