| 200 | |
| 201 | function test_query_meta_query_order() { |
| 202 | $p1 = $this->factory->post->create( array( 'post_title' => 'meta-value-1', 'post_date' => '2007-01-01 00:00:00' ) ); |
| 203 | $p2 = $this->factory->post->create( array( 'post_title' => 'meta-value-2', 'post_date' => '2007-02-01 00:00:00' ) ); |
| 204 | $p3 = $this->factory->post->create( array( 'post_title' => 'meta-value-3', 'post_date' => '2007-03-01 00:00:00' ) ); |
| 205 | |
| 206 | add_post_meta( $p1, 'order', 2 ); |
| 207 | add_post_meta( $p2, 'order', 1 ); |
| 208 | add_post_meta( $p3, 'order', 3 ); |
| 209 | |
| 210 | $posts1 = get_posts( array( |
| 211 | 'post_type' => 'post', |
| 212 | 'meta_key' => 'order', |
| 213 | 'meta_value' => 1, |
| 214 | 'meta_compare' => '>=', |
| 215 | 'orderby' => 'meta_value' |
| 216 | ) ); |
| 217 | |
| 218 | $this->assertSame( array( $p3, $p1, $p2 ), wp_list_pluck( $posts1, 'ID' ) ); |
| 219 | |
| 220 | $posts2 = get_posts( array( |
| 221 | 'post_type' => 'post', |
| 222 | 'meta_key' => 'order', |
| 223 | 'meta_value' => 1, |
| 224 | 'meta_compare' => '>=', |
| 225 | 'orderby' => 'meta_value', |
| 226 | 'meta_query' => array( |
| 227 | 'relation' => 'OR', |
| 228 | array( |
| 229 | 'key' => 'order', |
| 230 | 'compare' => '>=', |
| 231 | 'value' => 1 |
| 232 | ), |
| 233 | array( |
| 234 | 'key' => 'foo', |
| 235 | 'value' => 'bar', |
| 236 | ), |
| 237 | ) |
| 238 | ) ); |
| 239 | |
| 240 | $this->assertSame( array( $p3, $p1, $p2 ), wp_list_pluck( $posts2, 'ID' ) ); |
| 241 | } |