Ticket #17264: 17264.2.diff

File 17264.2.diff, 1.2 KB (added by greuben, 2 years ago)
Line 
1Index: wp-includes/meta.php
2===================================================================
3--- wp-includes/meta.php        (revision 17732)
4+++ wp-includes/meta.php        (working copy)
5@@ -492,9 +492,6 @@
6                        elseif ( ! in_array( $meta_type, array( 'BINARY', 'CHAR', 'DATE', 'DATETIME', 'DECIMAL', 'SIGNED', 'TIME', 'UNSIGNED' ) ) )
7                                $meta_type = 'CHAR';
8 
9-                       if ( empty( $meta_key ) && empty( $meta_value ) )
10-                               continue;
11-
12                        $alias = $i ? 'mt' . $i : $meta_table;
13 
14                        $join .= "\nINNER JOIN $meta_table";
15@@ -503,6 +500,7 @@
16 
17                        $i++;
18 
19+                       $where[$k] = '';
20                        if ( !empty( $meta_key ) )
21                                $where[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key );
22 
23@@ -531,8 +529,11 @@
24                        } else {
25                                $meta_compare_string = '%s';
26                        }
27+                       
28+                       if ( $where[$k] )
29+                               $where[$k] .= ' AND';
30 
31-                       $where[$k] = ' (' . $where[$k] . $wpdb->prepare( " AND CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $meta_value );
32+                       $where[$k] = ' (' . $where[$k] . $wpdb->prepare( " CAST($alias.meta_value AS {$meta_type}) {$meta_compare} {$meta_compare_string})", $meta_value );
33                }
34                $where = ' AND (' . implode( " {$this->relation} ", $where ) . ' )';
35