WordPress.org

Make WordPress Core

Ticket #17264: 17264.2.diff

File 17264.2.diff, 1.2 KB (added by greuben, 7 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