WordPress.org

Make WordPress Core

Ticket #17264: 17264.diff

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