WordPress.org

Make WordPress Core

Ticket #17264: 17264.diff

File 17264.diff, 1.4 KB (added by greuben, 3 years ago)

patch to allow query without 'key' argument

  • 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 
     
    514512                                if ( ! is_array( $meta_value ) ) 
    515513                                        $meta_value = preg_split( '/[,\s]+/', $meta_value ); 
    516514 
    517                                 if ( empty( $meta_value ) ) 
     515                                if ( empty( $meta_value ) ) { 
    518516                                        continue; 
     517                                } else { 
     518                                        $where[$k] .= ' AND'; 
     519                                } 
    519520                        } else { 
    520521                                $meta_value = trim( $meta_value ); 
    521522                        } 
     
    532533                                $meta_compare_string = '%s'; 
    533534                        } 
    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