WordPress.org

Make WordPress Core

Ticket #16829: 16829.patch

File 16829.patch, 1.4 KB (added by SergeyBiryukov, 3 years ago)
  • wp-includes/meta.php

     
    708708 
    709709                foreach ( $this->queries as $k => $q ) { 
    710710                        $meta_key = isset( $q['key'] ) ? trim( $q['key'] ) : ''; 
    711                         $meta_compare = isset( $q['compare'] ) ? strtoupper( $q['compare'] ) : '='; 
    712711                        $meta_type = isset( $q['type'] ) ? strtoupper( $q['type'] ) : 'CHAR'; 
    713712 
    714                         if ( ! in_array( $meta_compare, array( '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN' ) ) ) 
    715                                 $meta_compare = '='; 
    716  
    717713                        if ( 'NUMERIC' == $meta_type ) 
    718714                                $meta_type = 'SIGNED'; 
    719715                        elseif ( ! in_array( $meta_type, array( 'BINARY', 'CHAR', 'DATE', 'DATETIME', 'DECIMAL', 'SIGNED', 'TIME', 'UNSIGNED' ) ) ) 
     
    739735 
    740736                        $meta_value = $q['value']; 
    741737 
     738                        $meta_compare = is_array( $meta_value ) ? 'IN' : '='; 
     739                        if ( isset( $q['compare'] ) ) 
     740                                $meta_compare = strtoupper( $q['compare'] ); 
     741 
     742                        if ( ! in_array( $meta_compare, array( '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN' ) ) ) 
     743                                $meta_compare = '='; 
     744 
    742745                        if ( in_array( $meta_compare, array( 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN' ) ) ) { 
    743746                                if ( ! is_array( $meta_value ) ) 
    744747                                        $meta_value = preg_split( '/[,\s]+/', $meta_value );