WordPress.org

Make WordPress Core

Ticket #17264: 17264.2.diff

File 17264.2.diff, 1.2 KB (added by greuben, 4 years ago)
  • wp-includes/meta.php

     
    492492                        elseif ( ! in_array( $meta_type, array( 'BINARY', 'CHAR', 'DATE', 'DATETIME', 'DECIMAL', 'SIGNED', 'TIME', 'UNSIGNED' ) ) ) 
    493493                                $meta_type = 'CHAR'; 
    494494 
    495                         if ( empty( $meta_key ) && empty( $meta_value ) ) 
    496                                 continue; 
    497  
    498495                        $alias = $i ? 'mt' . $i : $meta_table; 
    499496 
    500497                        $join .= "\nINNER JOIN $meta_table"; 
     
    503500 
    504501                        $i++; 
    505502 
     503                        $where[$k] = ''; 
    506504                        if ( !empty( $meta_key ) ) 
    507505                                $where[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key ); 
    508506 
     
    531529                        } else { 
    532530                                $meta_compare_string = '%s'; 
    533531                        } 
     532                         
     533                        if ( $where[$k] ) 
     534                                $where[$k] .= ' AND'; 
    534535 
    535                         $where[$k] = ' (' . $where[$k] . $wpdb->prepare( " AND CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $meta_value ); 
     536                        $where[$k] = ' (' . $where[$k] . $wpdb->prepare( " CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $meta_value ); 
    536537                } 
    537538                $where = ' AND (' . implode( " {$this->relation} ", $where ) . ' )'; 
    538539