Changeset 29650
- Timestamp:
- 08/27/2014 08:22:35 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
-
src/wp-includes/meta.php (modified) (3 diffs)
-
tests/phpunit/tests/meta.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/meta.php
r29421 r29650 1012 1012 } 1013 1013 1014 $where_meta_key = array();1015 1014 foreach ( $queries as $k => $q ) { 1016 1015 $meta_key = isset( $q['key'] ) ? trim( $q['key'] ) : ''; … … 1055 1054 1056 1055 $where[$k] = ''; 1057 if ( ! empty( $meta_key ) ) { 1058 if ( isset( $q['compare'] ) ) { 1059 $where_meta_key[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key ); 1060 } else { 1061 $where[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key ); 1062 } 1063 } 1056 if ( !empty( $meta_key ) ) 1057 $where[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key ); 1064 1058 1065 1059 if ( is_null( $meta_value ) ) { 1066 if ( empty( $where[$k] ) && empty( $where_meta_key ) ) {1060 if ( empty( $where[$k] ) ) 1067 1061 unset( $join[$i] ); 1068 }1069 1062 continue; 1070 1063 } … … 1106 1099 else 1107 1100 $where = ' AND (' . implode( "\n{$this->relation} ", $where ) . ' )'; 1108 1109 if ( ! empty( $where_meta_key ) ) {1110 $where .= "\nAND (" . implode( "\nAND ", $where_meta_key ) . ' )';1111 }1112 1101 1113 1102 $join = implode( "\n", $join ); -
trunk/tests/phpunit/tests/meta.php
r29421 r29650 199 199 } 200 200 201 function test_query_meta_query_order() {202 $post1 = $this->factory->post->create( array( 'post_title' => 'meta-value-1', 'post_date' => '2007-01-01 00:00:00' ) );203 $post2 = $this->factory->post->create( array( 'post_title' => 'meta-value-2', 'post_date' => '2007-01-01 00:00:00' ) );204 $post3 = $this->factory->post->create( array( 'post_title' => 'meta-value-3', 'post_date' => '2007-01-01 00:00:00' ) );205 206 add_post_meta( $post1, 'order', 1 );207 add_post_meta( $post2, 'order', 2 );208 add_post_meta( $post3, 'order', 3 );209 210 $args = array(211 'post_type' => 'post',212 'meta_key' => 'order',213 'meta_value' => 1,214 'meta_compare' => '>=',215 'orderby' => 'meta_value'216 );217 218 $args2 = array(219 'post_type' => 'post',220 'meta_key' => 'order',221 'meta_value' => 1,222 'meta_compare' => '>=',223 'orderby' => 'meta_value',224 'meta_query' => array(225 'relation' => 'OR',226 array(227 'key' => 'order',228 'compare' => '>=',229 'value' => 1230 )231 )232 );233 234 $posts = get_posts( $args );235 $posts2 = get_posts( $args2 );236 237 $this->assertEquals( wp_list_pluck( $posts, 'post_title' ), wp_list_pluck( $posts2, 'post_title' ) );238 }239 240 201 /** 241 202 * @ticket 28315
Note: See TracChangeset
for help on using the changeset viewer.