Changeset 42343 for trunk/tests/phpunit/tests/query/metaQuery.php
- Timestamp:
- 11/30/2017 11:09:33 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/phpunit/tests/query/metaQuery.php
r38938 r42343 15 15 add_post_meta( $p3, 'oof', 'baz' ); 16 16 17 $query = new WP_Query( array( 18 'update_post_meta_cache' => false, 19 'update_post_term_cache' => false, 20 'fields' => 'ids', 21 'meta_query' => array( 22 array( 23 'value' => 'bar', 24 ), 25 ), 26 ) ); 17 $query = new WP_Query( 18 array( 19 'update_post_meta_cache' => false, 20 'update_post_term_cache' => false, 21 'fields' => 'ids', 22 'meta_query' => array( 23 array( 24 'value' => 'bar', 25 ), 26 ), 27 ) 28 ); 27 29 28 30 $expected = array( $p1, $p2 ); … … 39 41 add_post_meta( $p3, 'oof', 'baz' ); 40 42 41 $query = new WP_Query( array( 42 'update_post_meta_cache' => false, 43 'update_post_term_cache' => false, 44 'fields' => 'ids', 45 'meta_query' => array( 46 array( 47 'key' => 'oof', 48 ), 49 ), 50 ) ); 43 $query = new WP_Query( 44 array( 45 'update_post_meta_cache' => false, 46 'update_post_term_cache' => false, 47 'fields' => 'ids', 48 'meta_query' => array( 49 array( 50 'key' => 'oof', 51 ), 52 ), 53 ) 54 ); 51 55 52 56 $expected = array( $p2, $p3 ); … … 60 64 add_post_meta( $p1, 'foo', 'bar' ); 61 65 62 $query = new WP_Query( array( 63 'update_post_meta_cache' => false, 64 'update_post_term_cache' => false, 65 'fields' => 'ids', 66 'meta_query' => array( 67 array( 68 'key' => 'foo', 69 'value' => 'bar', 70 ), 71 ), 72 ) ); 66 $query = new WP_Query( 67 array( 68 'update_post_meta_cache' => false, 69 'update_post_term_cache' => false, 70 'fields' => 'ids', 71 'meta_query' => array( 72 array( 73 'key' => 'foo', 74 'value' => 'bar', 75 ), 76 ), 77 ) 78 ); 73 79 74 80 $expected = array( $p1 ); … … 82 88 add_post_meta( $p1, 'foo', 'bar' ); 83 89 84 $query = new WP_Query( array( 85 'update_post_meta_cache' => false, 86 'update_post_term_cache' => false, 87 'fields' => 'ids', 88 'meta_query' => array( 89 array( 90 'key' => 'foo', 91 'value' => 'bar', 92 'compare' => '=', 93 ), 94 ), 95 ) ); 90 $query = new WP_Query( 91 array( 92 'update_post_meta_cache' => false, 93 'update_post_term_cache' => false, 94 'fields' => 'ids', 95 'meta_query' => array( 96 array( 97 'key' => 'foo', 98 'value' => 'bar', 99 'compare' => '=', 100 ), 101 ), 102 ) 103 ); 96 104 97 105 $expected = array( $p1 ); … … 107 115 add_post_meta( $p2, 'foo', 'baz' ); 108 116 109 $query = new WP_Query( array( 110 'update_post_meta_cache' => false, 111 'update_post_term_cache' => false, 112 'fields' => 'ids', 113 'meta_query' => array( 114 array( 115 'key' => 'foo', 116 'value' => 'bar', 117 'compare' => '!=', 118 ), 119 ), 120 ) ); 117 $query = new WP_Query( 118 array( 119 'update_post_meta_cache' => false, 120 'update_post_term_cache' => false, 121 'fields' => 'ids', 122 'meta_query' => array( 123 array( 124 'key' => 'foo', 125 'value' => 'bar', 126 'compare' => '!=', 127 ), 128 ), 129 ) 130 ); 121 131 122 132 $expected = array( $p2 ); … … 134 144 135 145 // < 136 $query = new WP_Query( array( 137 'update_post_meta_cache' => false, 138 'update_post_term_cache' => false, 139 'fields' => 'ids', 140 'meta_query' => array( 141 array( 142 'key' => 'foo', 143 'value' => 2, 144 'compare' => '<', 145 ), 146 ), 147 ) ); 146 $query = new WP_Query( 147 array( 148 'update_post_meta_cache' => false, 149 'update_post_term_cache' => false, 150 'fields' => 'ids', 151 'meta_query' => array( 152 array( 153 'key' => 'foo', 154 'value' => 2, 155 'compare' => '<', 156 ), 157 ), 158 ) 159 ); 148 160 149 161 $expected = array( $p1 ); … … 151 163 152 164 // <= 153 $query = new WP_Query( array( 154 'update_post_meta_cache' => false, 155 'update_post_term_cache' => false, 156 'fields' => 'ids', 157 'meta_query' => array( 158 array( 159 'key' => 'foo', 160 'value' => 2, 161 'compare' => '<=', 162 ), 163 ), 164 ) ); 165 $query = new WP_Query( 166 array( 167 'update_post_meta_cache' => false, 168 'update_post_term_cache' => false, 169 'fields' => 'ids', 170 'meta_query' => array( 171 array( 172 'key' => 'foo', 173 'value' => 2, 174 'compare' => '<=', 175 ), 176 ), 177 ) 178 ); 165 179 166 180 $expected = array( $p1, $p2 ); … … 168 182 169 183 // >= 170 $query = new WP_Query( array( 171 'update_post_meta_cache' => false, 172 'update_post_term_cache' => false, 173 'fields' => 'ids', 174 'meta_query' => array( 175 array( 176 'key' => 'foo', 177 'value' => 2, 178 'compare' => '>=', 179 ), 180 ), 181 ) ); 184 $query = new WP_Query( 185 array( 186 'update_post_meta_cache' => false, 187 'update_post_term_cache' => false, 188 'fields' => 'ids', 189 'meta_query' => array( 190 array( 191 'key' => 'foo', 192 'value' => 2, 193 'compare' => '>=', 194 ), 195 ), 196 ) 197 ); 182 198 183 199 $expected = array( $p2, $p3 ); … … 185 201 186 202 // > 187 $query = new WP_Query( array( 188 'update_post_meta_cache' => false, 189 'update_post_term_cache' => false, 190 'fields' => 'ids', 191 'meta_query' => array( 192 array( 193 'key' => 'foo', 194 'value' => 2, 195 'compare' => '>', 196 ), 197 ), 198 ) ); 203 $query = new WP_Query( 204 array( 205 'update_post_meta_cache' => false, 206 'update_post_term_cache' => false, 207 'fields' => 'ids', 208 'meta_query' => array( 209 array( 210 'key' => 'foo', 211 'value' => 2, 212 'compare' => '>', 213 ), 214 ), 215 ) 216 ); 199 217 200 218 $expected = array( $p3 ); … … 208 226 add_post_meta( $p1, 'foo', 'bar' ); 209 227 210 $query = new WP_Query( array( 211 'update_post_meta_cache' => false, 212 'update_post_term_cache' => false, 213 'fields' => 'ids', 214 'meta_query' => array( 215 array( 216 'key' => 'foo', 217 'value' => 'ba', 218 'compare' => 'LIKE', 219 ), 220 ), 221 ) ); 228 $query = new WP_Query( 229 array( 230 'update_post_meta_cache' => false, 231 'update_post_term_cache' => false, 232 'fields' => 'ids', 233 'meta_query' => array( 234 array( 235 'key' => 'foo', 236 'value' => 'ba', 237 'compare' => 'LIKE', 238 ), 239 ), 240 ) 241 ); 222 242 223 243 $expected = array( $p1 ); … … 233 253 add_post_meta( $p2, 'foo', 'rab' ); 234 254 235 $query = new WP_Query( array( 236 'update_post_meta_cache' => false, 237 'update_post_term_cache' => false, 238 'fields' => 'ids', 239 'meta_query' => array( 240 array( 241 'key' => 'foo', 242 'value' => 'ba', 243 'compare' => 'NOT LIKE', 244 ), 245 ), 246 ) ); 255 $query = new WP_Query( 256 array( 257 'update_post_meta_cache' => false, 258 'update_post_term_cache' => false, 259 'fields' => 'ids', 260 'meta_query' => array( 261 array( 262 'key' => 'foo', 263 'value' => 'ba', 264 'compare' => 'NOT LIKE', 265 ), 266 ), 267 ) 268 ); 247 269 248 270 $expected = array( $p2 ); … … 259 281 add_post_meta( $p3, 'foo', '100' ); 260 282 261 $query = new WP_Query( array( 262 'update_post_meta_cache' => false, 263 'update_post_term_cache' => false, 264 'fields' => 'ids', 265 'meta_query' => array( 266 array( 267 'key' => 'foo', 268 'value' => array( 9, 12 ), 269 'compare' => 'BETWEEN', 270 'type' => 'NUMERIC', 271 ), 272 ), 273 ) ); 283 $query = new WP_Query( 284 array( 285 'update_post_meta_cache' => false, 286 'update_post_term_cache' => false, 287 'fields' => 'ids', 288 'meta_query' => array( 289 array( 290 'key' => 'foo', 291 'value' => array( 9, 12 ), 292 'compare' => 'BETWEEN', 293 'type' => 'NUMERIC', 294 ), 295 ), 296 ) 297 ); 274 298 275 299 $expected = array( $p2 ); 276 300 $this->assertEqualSets( $expected, $query->posts ); 277 301 278 $query = new WP_Query( array( 279 'update_post_meta_cache' => false, 280 'update_post_term_cache' => false, 281 'fields' => 'ids', 282 'meta_query' => array( 283 array( 284 'key' => 'foo', 285 'value' => array( 9, 12 ), 286 'compare' => 'NOT BETWEEN', 287 'type' => 'NUMERIC', 288 ), 289 ), 290 ) ); 302 $query = new WP_Query( 303 array( 304 'update_post_meta_cache' => false, 305 'update_post_term_cache' => false, 306 'fields' => 'ids', 307 'meta_query' => array( 308 array( 309 'key' => 'foo', 310 'value' => array( 9, 12 ), 311 'compare' => 'NOT BETWEEN', 312 'type' => 'NUMERIC', 313 ), 314 ), 315 ) 316 ); 291 317 292 318 $expected = array( $p1, $p3 ); … … 301 327 add_post_meta( $p2, 'foo', 'baz' ); 302 328 303 $query = new WP_Query( array( 304 'update_post_meta_cache' => false, 305 'update_post_term_cache' => false, 306 'fields' => 'ids', 307 'meta_query' => array( 308 array( 309 'key' => 'foo', 310 'value' => 'z$', 311 'compare' => 'REGEXP', 312 ), 313 ), 314 ) ); 329 $query = new WP_Query( 330 array( 331 'update_post_meta_cache' => false, 332 'update_post_term_cache' => false, 333 'fields' => 'ids', 334 'meta_query' => array( 335 array( 336 'key' => 'foo', 337 'value' => 'z$', 338 'compare' => 'REGEXP', 339 ), 340 ), 341 ) 342 ); 315 343 316 344 $expected = array( $p2 ); … … 318 346 319 347 // RLIKE is a synonym for REGEXP. 320 $query = new WP_Query( array( 321 'update_post_meta_cache' => false, 322 'update_post_term_cache' => false, 323 'fields' => 'ids', 324 'meta_query' => array( 325 array( 326 'key' => 'foo', 327 'value' => 'z$', 328 'compare' => 'RLIKE', 329 ), 330 ), 331 ) ); 348 $query = new WP_Query( 349 array( 350 'update_post_meta_cache' => false, 351 'update_post_term_cache' => false, 352 'fields' => 'ids', 353 'meta_query' => array( 354 array( 355 'key' => 'foo', 356 'value' => 'z$', 357 'compare' => 'RLIKE', 358 ), 359 ), 360 ) 361 ); 332 362 333 363 $expected = array( $p2 ); … … 342 372 add_post_meta( $p2, 'foo', 'baz' ); 343 373 344 $query = new WP_Query( array( 345 'update_post_meta_cache' => false, 346 'update_post_term_cache' => false, 347 'fields' => 'ids', 348 'meta_query' => array( 349 array( 350 'key' => 'foo', 351 'value' => 'z$', 352 'compare' => 'NOT REGEXP', 353 ), 354 ), 355 ) ); 374 $query = new WP_Query( 375 array( 376 'update_post_meta_cache' => false, 377 'update_post_term_cache' => false, 378 'fields' => 'ids', 379 'meta_query' => array( 380 array( 381 'key' => 'foo', 382 'value' => 'z$', 383 'compare' => 'NOT REGEXP', 384 ), 385 ), 386 ) 387 ); 356 388 357 389 $expected = array( $p1 ); … … 369 401 add_post_meta( $p2, 'bar', 'bar value 2' ); 370 402 371 $query = new WP_Query( array( 372 'update_post_meta_cache' => false, 373 'update_post_term_cache' => false, 374 'fields' => 'ids', 375 'meta_query' => array( 376 array( 377 'key' => 'foo', 378 'value' => 'foo value 1', 379 ), 380 array( 381 'key' => 'bar', 382 'value' => 'bar value 1', 383 ), 384 ), 385 ) ); 403 $query = new WP_Query( 404 array( 405 'update_post_meta_cache' => false, 406 'update_post_term_cache' => false, 407 'fields' => 'ids', 408 'meta_query' => array( 409 array( 410 'key' => 'foo', 411 'value' => 'foo value 1', 412 ), 413 array( 414 'key' => 'bar', 415 'value' => 'bar value 1', 416 ), 417 ), 418 ) 419 ); 386 420 387 421 $expected = array( $p1 ); … … 409 443 add_post_meta( $post_id6, 'bar', 'bar_val_2' ); 410 444 411 $query = new WP_Query( array( 412 'update_post_meta_cache' => false, 413 'update_post_term_cache' => false, 414 'fields' => 'ids', 415 'meta_query' => array( 416 array( 417 'key' => 'foo' 418 ), 419 array( 420 'key' => 'bar', 421 'value' => 'bar_val_1' 422 ), 423 array( 424 'key' => 'baz' 425 ), 426 array( 427 'key' => 'froo' 428 ), 429 'relation' => 'OR', 430 ), 431 ) ); 445 $query = new WP_Query( 446 array( 447 'update_post_meta_cache' => false, 448 'update_post_term_cache' => false, 449 'fields' => 'ids', 450 'meta_query' => array( 451 array( 452 'key' => 'foo', 453 ), 454 array( 455 'key' => 'bar', 456 'value' => 'bar_val_1', 457 ), 458 array( 459 'key' => 'baz', 460 ), 461 array( 462 'key' => 'froo', 463 ), 464 'relation' => 'OR', 465 ), 466 ) 467 ); 432 468 433 469 $expected = array( $post_id, $post_id2, $post_id3, $post_id4 ); … … 463 499 add_post_meta( $post_id7, 'bar', 'val_2' ); 464 500 465 $query = new WP_Query( array( 466 'meta_query' => array( 467 array( 468 'key' => 'foo' 469 ), 470 array( 471 'key' => 'bar', 472 'value' => 'val_2' 473 ), 474 array( 475 'key' => 'baz' 476 ), 477 array( 478 'key' => 'froo' 479 ), 480 'relation' => 'AND', 481 ), 482 'update_post_meta_cache' => false, 483 'update_post_term_cache' => false, 484 'fields' => 'ids', 485 ) ); 501 $query = new WP_Query( 502 array( 503 'meta_query' => array( 504 array( 505 'key' => 'foo', 506 ), 507 array( 508 'key' => 'bar', 509 'value' => 'val_2', 510 ), 511 array( 512 'key' => 'baz', 513 ), 514 array( 515 'key' => 'froo', 516 ), 517 'relation' => 'AND', 518 ), 519 'update_post_meta_cache' => false, 520 'update_post_term_cache' => false, 521 'fields' => 'ids', 522 ) 523 ); 486 524 487 525 $expected = array( $post_id7 ); 488 526 $this->assertEqualSets( $expected, $query->posts ); 489 527 490 $query = new WP_Query( array( 491 'meta_query' => array( 492 array( 493 'key' => 'foo' 494 ), 495 array( 496 'key' => 'bar', 497 ), 498 'relation' => 'AND', 499 ), 500 'update_post_meta_cache' => false, 501 'update_post_term_cache' => false, 502 'fields' => 'ids', 503 ) ); 528 $query = new WP_Query( 529 array( 530 'meta_query' => array( 531 array( 532 'key' => 'foo', 533 ), 534 array( 535 'key' => 'bar', 536 ), 537 'relation' => 'AND', 538 ), 539 'update_post_meta_cache' => false, 540 'update_post_term_cache' => false, 541 'fields' => 'ids', 542 ) 543 ); 504 544 505 545 $expected = array( $post_id2, $post_id6, $post_id7 ); … … 515 555 add_post_meta( $posts[2], 'foo', 'baz' ); 516 556 517 $query = new WP_Query( array( 518 'fields' => 'ids', 519 'meta_query' => array( 520 array( 521 'compare' => 'EXISTS', 522 'key' => 'foo', 523 ), 524 ), 525 ) ); 557 $query = new WP_Query( 558 array( 559 'fields' => 'ids', 560 'meta_query' => array( 561 array( 562 'compare' => 'EXISTS', 563 'key' => 'foo', 564 ), 565 ), 566 ) 567 ); 526 568 527 569 $this->assertEqualSets( array( $posts[0], $posts[2] ), $query->posts ); … … 536 578 add_post_meta( $posts[2], 'foo', 'baz' ); 537 579 538 $query = new WP_Query( array( 539 'fields' => 'ids', 540 'meta_query' => array( 541 array( 542 'compare' => 'EXISTS', 543 'value' => 'baz', 544 'key' => 'foo', 545 ), 546 ), 547 ) ); 580 $query = new WP_Query( 581 array( 582 'fields' => 'ids', 583 'meta_query' => array( 584 array( 585 'compare' => 'EXISTS', 586 'value' => 'baz', 587 'key' => 'foo', 588 ), 589 ), 590 ) 591 ); 548 592 549 593 $this->assertEqualSets( array( $posts[2] ), $query->posts ); … … 558 602 add_post_meta( $posts[2], 'foo', 'baz' ); 559 603 560 $query = new WP_Query( array( 561 'fields' => 'ids', 562 'meta_query' => array( 563 array( 564 'compare' => 'NOT EXISTS', 565 'value' => 'bar', 566 'key' => 'foo', 567 ), 568 ), 569 ) ); 604 $query = new WP_Query( 605 array( 606 'fields' => 'ids', 607 'meta_query' => array( 608 array( 609 'compare' => 'NOT EXISTS', 610 'value' => 'bar', 611 'key' => 'foo', 612 ), 613 ), 614 ) 615 ); 570 616 571 617 $this->assertEqualSets( array( $posts[1] ), $query->posts ); … … 591 637 add_post_meta( $post_id5, 'foo', 'foo_val_2' ); 592 638 593 $query = new WP_Query( array( 594 'meta_query' => array( 595 array( 596 'key' => 'foo', 597 'compare' => 'NOT EXISTS', 598 ), 599 ), 600 'update_post_meta_cache' => false, 601 'update_post_term_cache' => false, 602 'fields' => 'ids', 603 ) ); 639 $query = new WP_Query( 640 array( 641 'meta_query' => array( 642 array( 643 'key' => 'foo', 644 'compare' => 'NOT EXISTS', 645 ), 646 ), 647 'update_post_meta_cache' => false, 648 'update_post_term_cache' => false, 649 'fields' => 'ids', 650 ) 651 ); 604 652 605 653 $expected = array( $post_id2, $post_id3, $post_id4 ); 606 654 $this->assertEqualSets( $expected, $query->posts ); 607 655 608 $query = new WP_Query( array( 609 'meta_query' => array( 610 array( 611 'key' => 'foo', 612 'compare' => 'NOT EXISTS', 613 ), 614 array( 615 'key' => 'bar', 616 'compare' => 'NOT EXISTS', 617 ), 618 ), 619 'update_post_meta_cache' => false, 620 'update_post_term_cache' => false, 621 'fields' => 'ids', 622 ) ); 656 $query = new WP_Query( 657 array( 658 'meta_query' => array( 659 array( 660 'key' => 'foo', 661 'compare' => 'NOT EXISTS', 662 ), 663 array( 664 'key' => 'bar', 665 'compare' => 'NOT EXISTS', 666 ), 667 ), 668 'update_post_meta_cache' => false, 669 'update_post_term_cache' => false, 670 'fields' => 'ids', 671 ) 672 ); 623 673 624 674 $expected = array( $post_id4 ); 625 675 $this->assertEquals( $expected, $query->posts ); 626 676 627 $query = new WP_Query( array( 628 'meta_query' => array( 629 array( 630 'key' => 'foo', 631 'compare' => 'NOT EXISTS', 632 ), 633 array( 634 'key' => 'bar', 635 'compare' => 'NOT EXISTS', 636 ), 637 array( 638 'key' => 'baz', 639 'compare' => 'NOT EXISTS', 640 ), 641 ), 642 'update_post_meta_cache' => false, 643 'update_post_term_cache' => false, 644 'fields' => 'ids', 645 ) ); 677 $query = new WP_Query( 678 array( 679 'meta_query' => array( 680 array( 681 'key' => 'foo', 682 'compare' => 'NOT EXISTS', 683 ), 684 array( 685 'key' => 'bar', 686 'compare' => 'NOT EXISTS', 687 ), 688 array( 689 'key' => 'baz', 690 'compare' => 'NOT EXISTS', 691 ), 692 ), 693 'update_post_meta_cache' => false, 694 'update_post_term_cache' => false, 695 'fields' => 'ids', 696 ) 697 ); 646 698 647 699 $this->assertEquals( 0, count( $query->posts ) ); … … 663 715 } 664 716 665 $query = new WP_Query( array( 666 'meta_query' => array( 667 'relation' => 'OR', 668 array( 669 'key' => 'vegetable', 670 'value' => 'onion', 671 ), 672 array( 673 'key' => 'color', 674 'compare' => 'NOT EXISTS', 675 ), 676 ), 677 'update_post_meta_cache' => false, 678 'update_post_term_cache' => false, 679 'fields' => 'ids', 680 ) ); 717 $query = new WP_Query( 718 array( 719 'meta_query' => array( 720 'relation' => 'OR', 721 array( 722 'key' => 'vegetable', 723 'value' => 'onion', 724 ), 725 array( 726 'key' => 'color', 727 'compare' => 'NOT EXISTS', 728 ), 729 ), 730 'update_post_meta_cache' => false, 731 'update_post_term_cache' => false, 732 'fields' => 'ids', 733 ) 734 ); 681 735 682 736 $expected = array( $posts[1], $posts[2], $posts[3] ); … … 694 748 add_post_meta( $posts[2], 'vegetable', 'shallot' ); 695 749 696 $query = new WP_Query( array( 697 'meta_query' => array( 698 'relation' => 'OR', 699 array( 700 'key' => 'vegetable', 701 'value' => 'onion', 702 'compare' => '=', 703 ), 704 array( 705 'key' => 'vegetable', 706 'value' => 'shallot', 707 'compare' => '=', 708 ), 709 ), 710 'update_post_meta_cache' => false, 711 'update_post_term_cache' => false, 712 'fields' => 'ids', 713 ) ); 750 $query = new WP_Query( 751 array( 752 'meta_query' => array( 753 'relation' => 'OR', 754 array( 755 'key' => 'vegetable', 756 'value' => 'onion', 757 'compare' => '=', 758 ), 759 array( 760 'key' => 'vegetable', 761 'value' => 'shallot', 762 'compare' => '=', 763 ), 764 ), 765 'update_post_meta_cache' => false, 766 'update_post_term_cache' => false, 767 'fields' => 'ids', 768 ) 769 ); 714 770 715 771 $expected = array( $posts[1], $posts[2] ); … … 727 783 add_post_meta( $posts[2], 'vegetable', 'shallot' ); 728 784 729 $query = new WP_Query( array( 730 'meta_query' => array( 731 'relation' => 'OR', 732 array( 733 'key' => 'vegetable', 734 'value' => 'onion', 735 'compare' => '=', 736 ), 737 array( 738 'key' => 'color', 739 'value' => 'orange', 740 'compare' => '=', 741 ), 742 ), 743 'update_post_meta_cache' => false, 744 'update_post_term_cache' => false, 745 'fields' => 'ids', 746 ) ); 785 $query = new WP_Query( 786 array( 787 'meta_query' => array( 788 'relation' => 'OR', 789 array( 790 'key' => 'vegetable', 791 'value' => 'onion', 792 'compare' => '=', 793 ), 794 array( 795 'key' => 'color', 796 'value' => 'orange', 797 'compare' => '=', 798 ), 799 ), 800 'update_post_meta_cache' => false, 801 'update_post_term_cache' => false, 802 'fields' => 'ids', 803 ) 804 ); 747 805 748 806 $expected = array( $posts[0], $posts[1] ); … … 760 818 add_post_meta( $posts[2], 'vegetable', 'shallot' ); 761 819 762 $query = new WP_Query( array( 763 'meta_query' => array( 764 'relation' => 'OR', 765 array( 766 'key' => 'vegetable', 767 'value' => 'onion', 768 'compare' => '=', 769 ), 770 array( 771 'key' => 'color', 772 'value' => array( 'orange', 'green' ), 773 'compare' => 'IN', 774 ), 775 ), 776 'update_post_meta_cache' => false, 777 'update_post_term_cache' => false, 778 'fields' => 'ids', 779 ) ); 820 $query = new WP_Query( 821 array( 822 'meta_query' => array( 823 'relation' => 'OR', 824 array( 825 'key' => 'vegetable', 826 'value' => 'onion', 827 'compare' => '=', 828 ), 829 array( 830 'key' => 'color', 831 'value' => array( 'orange', 'green' ), 832 'compare' => 'IN', 833 ), 834 ), 835 'update_post_meta_cache' => false, 836 'update_post_term_cache' => false, 837 'fields' => 'ids', 838 ) 839 ); 780 840 781 841 $expected = array( $posts[0], $posts[1] ); … … 793 853 add_post_meta( $posts[2], 'vegetable', 'shallot' ); 794 854 795 $query = new WP_Query( array( 796 'meta_query' => array( 797 'relation' => 'OR', 798 array( 799 'key' => 'vegetable', 800 'value' => 'onion', 801 'compare' => '=', 802 ), 803 array( 804 'key' => 'vegetable', 805 'value' => 'hall', 806 'compare' => 'LIKE', 807 ), 808 ), 809 'update_post_meta_cache' => false, 810 'update_post_term_cache' => false, 811 'fields' => 'ids', 812 ) ); 855 $query = new WP_Query( 856 array( 857 'meta_query' => array( 858 'relation' => 'OR', 859 array( 860 'key' => 'vegetable', 861 'value' => 'onion', 862 'compare' => '=', 863 ), 864 array( 865 'key' => 'vegetable', 866 'value' => 'hall', 867 'compare' => 'LIKE', 868 ), 869 ), 870 'update_post_meta_cache' => false, 871 'update_post_term_cache' => false, 872 'fields' => 'ids', 873 ) 874 ); 813 875 814 876 $expected = array( $posts[1], $posts[2] ); … … 826 888 add_post_meta( $posts[2], 'vegetable', 'shallot' ); 827 889 828 $query = new WP_Query( array( 829 'meta_query' => array( 830 'relation' => 'OR', 831 array( 832 'key' => 'vegetable', 833 'value' => 'shallot', 834 'compare' => '=', 835 ), 836 array( 837 'key' => 'number_of_colors', 838 'value' => array( 1, 3 ), 839 'compare' => 'BETWEEN', 840 'type' => 'SIGNED', 841 ), 842 ), 843 'update_post_meta_cache' => false, 844 'update_post_term_cache' => false, 845 'fields' => 'ids', 846 ) ); 890 $query = new WP_Query( 891 array( 892 'meta_query' => array( 893 'relation' => 'OR', 894 array( 895 'key' => 'vegetable', 896 'value' => 'shallot', 897 'compare' => '=', 898 ), 899 array( 900 'key' => 'number_of_colors', 901 'value' => array( 1, 3 ), 902 'compare' => 'BETWEEN', 903 'type' => 'SIGNED', 904 ), 905 ), 906 'update_post_meta_cache' => false, 907 'update_post_term_cache' => false, 908 'fields' => 'ids', 909 ) 910 ); 847 911 848 912 $expected = array( $posts[0], $posts[2] ); … … 862 926 add_post_meta( $posts[3], 'vegetable', 'onion' ); 863 927 864 $query = new WP_Query( array( 865 'meta_query' => array( 866 'relation' => 'AND', 867 array( 868 'key' => 'vegetable', 869 'value' => array( 'onion', 'shallot' ), 870 'compare' => 'IN', 871 ), 872 array( 873 'key' => 'vegetable', 874 'value' => array( 'banana' ), 875 'compare' => 'IN', 876 ), 877 ), 878 'update_post_meta_cache' => false, 879 'update_post_term_cache' => false, 880 'fields' => 'ids', 881 ) ); 928 $query = new WP_Query( 929 array( 930 'meta_query' => array( 931 'relation' => 'AND', 932 array( 933 'key' => 'vegetable', 934 'value' => array( 'onion', 'shallot' ), 935 'compare' => 'IN', 936 ), 937 array( 938 'key' => 'vegetable', 939 'value' => array( 'banana' ), 940 'compare' => 'IN', 941 ), 942 ), 943 'update_post_meta_cache' => false, 944 'update_post_term_cache' => false, 945 'fields' => 'ids', 946 ) 947 ); 882 948 883 949 $expected = array( $posts[3] ); … … 897 963 add_post_meta( $posts[3], 'vegetable', 'banana' ); 898 964 899 $query = new WP_Query( array( 900 'meta_query' => array( 901 'relation' => 'AND', 902 array( 903 'key' => 'vegetable', 904 'value' => array( 'onion', 'shallot' ), 905 'compare' => 'IN', 906 ), 907 array( 908 'key' => 'color', 909 'value' => array( 'blue' ), 910 'compare' => 'IN', 911 ), 912 ), 913 'update_post_meta_cache' => false, 914 'update_post_term_cache' => false, 915 'fields' => 'ids', 916 ) ); 965 $query = new WP_Query( 966 array( 967 'meta_query' => array( 968 'relation' => 'AND', 969 array( 970 'key' => 'vegetable', 971 'value' => array( 'onion', 'shallot' ), 972 'compare' => 'IN', 973 ), 974 array( 975 'key' => 'color', 976 'value' => array( 'blue' ), 977 'compare' => 'IN', 978 ), 979 ), 980 'update_post_meta_cache' => false, 981 'update_post_term_cache' => false, 982 'fields' => 'ids', 983 ) 984 ); 917 985 918 986 $expected = array( $posts[1] ); … … 931 999 add_post_meta( $posts[3], 'vegetable', 'banana' ); 932 1000 933 $query = new WP_Query( array( 934 'meta_query' => array( 935 'relation' => 'AND', 936 array( 937 'key' => 'vegetable', 938 'value' => 'onion', 939 'compare' => '!=', 940 ), 941 array( 942 'key' => 'vegetable', 943 'value' => 'shallot', 944 'compare' => '!=', 945 ), 946 ), 947 'update_post_meta_cache' => false, 948 'update_post_term_cache' => false, 949 'fields' => 'ids', 950 ) ); 1001 $query = new WP_Query( 1002 array( 1003 'meta_query' => array( 1004 'relation' => 'AND', 1005 array( 1006 'key' => 'vegetable', 1007 'value' => 'onion', 1008 'compare' => '!=', 1009 ), 1010 array( 1011 'key' => 'vegetable', 1012 'value' => 'shallot', 1013 'compare' => '!=', 1014 ), 1015 ), 1016 'update_post_meta_cache' => false, 1017 'update_post_term_cache' => false, 1018 'fields' => 'ids', 1019 ) 1020 ); 951 1021 952 1022 $expected = array( $posts[3] ); … … 972 1042 add_post_meta( $posts[2], 'vegetable', 'onion' ); 973 1043 974 $query = new WP_Query( array( 975 'meta_query' => array( 976 'relation' => 'AND', 977 array( 978 'key' => 'vegetable', 979 'value' => 'shallot', 980 'compare' => '!=', 981 ), 982 array( 983 'key' => 'color', 984 'value' => 'orange', 985 'compare' => '!=', 986 ), 987 ), 988 'update_post_meta_cache' => false, 989 'update_post_term_cache' => false, 990 'fields' => 'ids', 991 ) ); 1044 $query = new WP_Query( 1045 array( 1046 'meta_query' => array( 1047 'relation' => 'AND', 1048 array( 1049 'key' => 'vegetable', 1050 'value' => 'shallot', 1051 'compare' => '!=', 1052 ), 1053 array( 1054 'key' => 'color', 1055 'value' => 'orange', 1056 'compare' => '!=', 1057 ), 1058 ), 1059 'update_post_meta_cache' => false, 1060 'update_post_term_cache' => false, 1061 'fields' => 'ids', 1062 ) 1063 ); 992 1064 993 1065 $expected = array( $posts[2] ); … … 1006 1078 add_post_meta( $posts[3], 'vegetable', 'banana' ); 1007 1079 1008 $query = new WP_Query( array( 1009 'meta_query' => array( 1010 'relation' => 'AND', 1011 array( 1012 'key' => 'vegetable', 1013 'value' => 'onion', 1014 'compare' => '!=', 1015 ), 1016 array( 1017 'key' => 'vegetable', 1018 'value' => array( 'shallot' ), 1019 'compare' => 'NOT IN', 1020 ), 1021 ), 1022 'update_post_meta_cache' => false, 1023 'update_post_term_cache' => false, 1024 'fields' => 'ids', 1025 ) ); 1080 $query = new WP_Query( 1081 array( 1082 'meta_query' => array( 1083 'relation' => 'AND', 1084 array( 1085 'key' => 'vegetable', 1086 'value' => 'onion', 1087 'compare' => '!=', 1088 ), 1089 array( 1090 'key' => 'vegetable', 1091 'value' => array( 'shallot' ), 1092 'compare' => 'NOT IN', 1093 ), 1094 ), 1095 'update_post_meta_cache' => false, 1096 'update_post_term_cache' => false, 1097 'fields' => 'ids', 1098 ) 1099 ); 1026 1100 1027 1101 $expected = array( $posts[3] ); … … 1040 1114 add_post_meta( $posts[3], 'vegetable', 'banana' ); 1041 1115 1042 $query = new WP_Query( array( 1043 'meta_query' => array( 1044 'relation' => 'AND', 1045 array( 1046 'key' => 'vegetable', 1047 'value' => 'onion', 1048 'compare' => '!=', 1049 ), 1050 array( 1051 'key' => 'vegetable', 1052 'value' => 'hall', 1053 'compare' => 'NOT LIKE', 1054 ), 1055 ), 1056 'update_post_meta_cache' => false, 1057 'update_post_term_cache' => false, 1058 'fields' => 'ids', 1059 ) ); 1116 $query = new WP_Query( 1117 array( 1118 'meta_query' => array( 1119 'relation' => 'AND', 1120 array( 1121 'key' => 'vegetable', 1122 'value' => 'onion', 1123 'compare' => '!=', 1124 ), 1125 array( 1126 'key' => 'vegetable', 1127 'value' => 'hall', 1128 'compare' => 'NOT LIKE', 1129 ), 1130 ), 1131 'update_post_meta_cache' => false, 1132 'update_post_term_cache' => false, 1133 'fields' => 'ids', 1134 ) 1135 ); 1060 1136 1061 1137 $expected = array( $posts[3] ); … … 1077 1153 update_post_meta( $post_4, 'decimal_value', '0.4' ); 1078 1154 1079 $query = new WP_Query( array( 1080 'meta_query' => array( 1081 array( 1082 'key' => 'decimal_value', 1083 'value' => '.300', 1084 'compare' => '=', 1085 'type' => 'DECIMAL(10,2)' 1086 ) 1087 ), 1088 'update_post_meta_cache' => false, 1089 'update_post_term_cache' => false, 1090 'fields' => 'ids', 1091 ) ); 1155 $query = new WP_Query( 1156 array( 1157 'meta_query' => array( 1158 array( 1159 'key' => 'decimal_value', 1160 'value' => '.300', 1161 'compare' => '=', 1162 'type' => 'DECIMAL(10,2)', 1163 ), 1164 ), 1165 'update_post_meta_cache' => false, 1166 'update_post_term_cache' => false, 1167 'fields' => 'ids', 1168 ) 1169 ); 1092 1170 $this->assertEqualSets( array( $post_3 ), $query->posts ); 1093 1171 1094 $query = new WP_Query( array( 1095 'meta_query' => array( 1096 array( 1097 'key' => 'decimal_value', 1098 'value' => '0.35', 1099 'compare' => '>', 1100 'type' => 'DECIMAL(10,2)' 1101 ) 1102 ), 1103 'update_post_meta_cache' => false, 1104 'update_post_term_cache' => false, 1105 'fields' => 'ids', 1106 ) ); 1172 $query = new WP_Query( 1173 array( 1174 'meta_query' => array( 1175 array( 1176 'key' => 'decimal_value', 1177 'value' => '0.35', 1178 'compare' => '>', 1179 'type' => 'DECIMAL(10,2)', 1180 ), 1181 ), 1182 'update_post_meta_cache' => false, 1183 'update_post_term_cache' => false, 1184 'fields' => 'ids', 1185 ) 1186 ); 1107 1187 $this->assertEqualSets( array( $post_4 ), $query->posts ); 1108 1188 1109 $query = new WP_Query( array( 1110 'meta_query' => array( 1111 array( 1112 'key' => 'decimal_value', 1113 'value' => '0.3', 1114 'compare' => '>=', 1115 'type' => 'DECIMAL(10,2)' 1116 ) 1117 ), 1118 'update_post_meta_cache' => false, 1119 'update_post_term_cache' => false, 1120 'fields' => 'ids', 1121 ) ); 1189 $query = new WP_Query( 1190 array( 1191 'meta_query' => array( 1192 array( 1193 'key' => 'decimal_value', 1194 'value' => '0.3', 1195 'compare' => '>=', 1196 'type' => 'DECIMAL(10,2)', 1197 ), 1198 ), 1199 'update_post_meta_cache' => false, 1200 'update_post_term_cache' => false, 1201 'fields' => 'ids', 1202 ) 1203 ); 1122 1204 $this->assertEqualSets( array( $post_3, $post_4 ), $query->posts ); 1123 1205 1124 $query = new WP_Query( array( 1125 'meta_query' => array( 1126 array( 1127 'key' => 'decimal_value', 1128 'value' => '0', 1129 'compare' => '<', 1130 'type' => 'DECIMAL(10,2)' 1131 ) 1132 ), 1133 'update_post_meta_cache' => false, 1134 'update_post_term_cache' => false, 1135 'fields' => 'ids', 1136 ) ); 1206 $query = new WP_Query( 1207 array( 1208 'meta_query' => array( 1209 array( 1210 'key' => 'decimal_value', 1211 'value' => '0', 1212 'compare' => '<', 1213 'type' => 'DECIMAL(10,2)', 1214 ), 1215 ), 1216 'update_post_meta_cache' => false, 1217 'update_post_term_cache' => false, 1218 'fields' => 'ids', 1219 ) 1220 ); 1137 1221 $this->assertEqualSets( array( $post_1 ), $query->posts, 'ID' ); 1138 1222 1139 $query = new WP_Query( array( 1140 'meta_query' => array( 1141 array( 1142 'key' => 'decimal_value', 1143 'value' => '0.3', 1144 'compare' => '<=', 1145 'type' => 'DECIMAL(10,2)' 1146 ) 1147 ), 1148 'update_post_meta_cache' => false, 1149 'update_post_term_cache' => false, 1150 'fields' => 'ids', 1151 ) ); 1223 $query = new WP_Query( 1224 array( 1225 'meta_query' => array( 1226 array( 1227 'key' => 'decimal_value', 1228 'value' => '0.3', 1229 'compare' => '<=', 1230 'type' => 'DECIMAL(10,2)', 1231 ), 1232 ), 1233 'update_post_meta_cache' => false, 1234 'update_post_term_cache' => false, 1235 'fields' => 'ids', 1236 ) 1237 ); 1152 1238 $this->assertEqualSets( array( $post_1, $post_2, $post_3 ), $query->posts ); 1153 1239 1154 $query = new WP_Query( array( 1155 'meta_query' => array( 1156 array( 1157 'key' => 'decimal_value', 1158 'value' => array( 0.23409845, .31 ), 1159 'compare' => 'BETWEEN', 1160 'type' => 'DECIMAL(10, 10)' 1161 ) 1162 ), 1163 'update_post_meta_cache' => false, 1164 'update_post_term_cache' => false, 1165 'fields' => 'ids', 1166 ) ); 1240 $query = new WP_Query( 1241 array( 1242 'meta_query' => array( 1243 array( 1244 'key' => 'decimal_value', 1245 'value' => array( 0.23409845, .31 ), 1246 'compare' => 'BETWEEN', 1247 'type' => 'DECIMAL(10, 10)', 1248 ), 1249 ), 1250 'update_post_meta_cache' => false, 1251 'update_post_term_cache' => false, 1252 'fields' => 'ids', 1253 ) 1254 ); 1167 1255 $this->assertEqualSets( array( $post_3 ), $query->posts ); 1168 1256 1169 $query = new WP_Query( array( 1170 'meta_query' => array( 1171 array( 1172 'key' => 'decimal_value', 1173 'value' => array( 0.23409845, .31 ), 1174 'compare' => 'NOT BETWEEN', 1175 'type' => 'DECIMAL(10,10)' 1176 ) 1177 ), 1178 'update_post_meta_cache' => false, 1179 'update_post_term_cache' => false, 1180 'fields' => 'ids', 1181 ) ); 1257 $query = new WP_Query( 1258 array( 1259 'meta_query' => array( 1260 array( 1261 'key' => 'decimal_value', 1262 'value' => array( 0.23409845, .31 ), 1263 'compare' => 'NOT BETWEEN', 1264 'type' => 'DECIMAL(10,10)', 1265 ), 1266 ), 1267 'update_post_meta_cache' => false, 1268 'update_post_term_cache' => false, 1269 'fields' => 'ids', 1270 ) 1271 ); 1182 1272 $this->assertEqualSets( array( $post_1, $post_2, $post_4 ), $query->posts ); 1183 1273 1184 $query = new WP_Query( array( 1185 'meta_query' => array( 1186 array( 1187 'key' => 'decimal_value', 1188 'value' => '.3', 1189 'compare' => 'LIKE', 1190 'type' => 'DECIMAL(10,2)' 1191 ) 1192 ), 1193 'update_post_meta_cache' => false, 1194 'update_post_term_cache' => false, 1195 'fields' => 'ids', 1196 ) ); 1274 $query = new WP_Query( 1275 array( 1276 'meta_query' => array( 1277 array( 1278 'key' => 'decimal_value', 1279 'value' => '.3', 1280 'compare' => 'LIKE', 1281 'type' => 'DECIMAL(10,2)', 1282 ), 1283 ), 1284 'update_post_meta_cache' => false, 1285 'update_post_term_cache' => false, 1286 'fields' => 'ids', 1287 ) 1288 ); 1197 1289 $this->assertEqualSets( array( $post_1, $post_3 ), $query->posts ); 1198 1290 1199 $query = new WP_Query( array( 1200 'meta_query' => array( 1201 array( 1202 'key' => 'decimal_value', 1203 'value' => '.3', 1204 'compare' => 'NOT LIKE', 1205 'type' => 'DECIMAL(10,2)' 1206 ) 1207 ), 1208 'update_post_meta_cache' => false, 1209 'update_post_term_cache' => false, 1210 'fields' => 'ids', 1211 ) ); 1291 $query = new WP_Query( 1292 array( 1293 'meta_query' => array( 1294 array( 1295 'key' => 'decimal_value', 1296 'value' => '.3', 1297 'compare' => 'NOT LIKE', 1298 'type' => 'DECIMAL(10,2)', 1299 ), 1300 ), 1301 'update_post_meta_cache' => false, 1302 'update_post_term_cache' => false, 1303 'fields' => 'ids', 1304 ) 1305 ); 1212 1306 $this->assertEqualSets( array( $post_2, $post_4 ), $query->posts ); 1213 1307 1214 $query = new WP_Query( array( 1215 'orderby' => 'meta_value', 1216 'order' => 'DESC', 1217 'meta_key' => 'decimal_value', 1218 'meta_type' => 'DECIMAL(10, 2)', 1219 'update_post_meta_cache' => false, 1220 'update_post_term_cache' => false, 1221 'fields' => 'ids', 1222 ) ); 1308 $query = new WP_Query( 1309 array( 1310 'orderby' => 'meta_value', 1311 'order' => 'DESC', 1312 'meta_key' => 'decimal_value', 1313 'meta_type' => 'DECIMAL(10, 2)', 1314 'update_post_meta_cache' => false, 1315 'update_post_term_cache' => false, 1316 'fields' => 'ids', 1317 ) 1318 ); 1223 1319 $this->assertEqualSets( array( $post_4, $post_3, $post_2, $post_1 ), $query->posts ); 1224 1320 } 1225 1321 1226 1322 public function test_meta_vars_should_be_converted_to_meta_query() { 1227 $q = new WP_Query( array( 1228 'meta_key' => 'foo', 1229 'meta_value' => '5', 1230 'meta_compare' => '>', 1231 'meta_type' => 'SIGNED', 1232 ) ); 1323 $q = new WP_Query( 1324 array( 1325 'meta_key' => 'foo', 1326 'meta_value' => '5', 1327 'meta_compare' => '>', 1328 'meta_type' => 'SIGNED', 1329 ) 1330 ); 1233 1331 1234 1332 $this->assertSame( 'foo', $q->meta_query->queries[0]['key'] ); … … 1252 1350 update_post_meta( $posts[2], 'bar2', 'baz' ); 1253 1351 1254 $query = new WP_Query( array( 1255 'orderby' => 'meta_value', 1256 'order' => 'ASC', 1257 'meta_key' => 'foo', 1258 'meta_query' => array( 1259 'relation' => 'OR', 1260 array( 1261 'key' => 'bar1', 1262 'value' => 'baz', 1263 'compare' => '=', 1264 ), 1265 array( 1266 'key' => 'bar2', 1267 'value' => 'baz', 1268 'compare' => '=', 1269 ), 1270 ), 1271 'update_post_meta_cache' => false, 1272 'update_post_term_cache' => false, 1273 'fields' => 'ids', 1274 ) ); 1352 $query = new WP_Query( 1353 array( 1354 'orderby' => 'meta_value', 1355 'order' => 'ASC', 1356 'meta_key' => 'foo', 1357 'meta_query' => array( 1358 'relation' => 'OR', 1359 array( 1360 'key' => 'bar1', 1361 'value' => 'baz', 1362 'compare' => '=', 1363 ), 1364 array( 1365 'key' => 'bar2', 1366 'value' => 'baz', 1367 'compare' => '=', 1368 ), 1369 ), 1370 'update_post_meta_cache' => false, 1371 'update_post_term_cache' => false, 1372 'fields' => 'ids', 1373 ) 1374 ); 1275 1375 1276 1376 $this->assertEquals( array( $posts[2], $posts[0], $posts[1] ), $query->posts ); … … 1295 1395 update_post_meta( $posts[2], 'bar2', 'baz' ); 1296 1396 1297 $query = new WP_Query( array( 1298 'orderby' => 'meta_value', 1299 'order' => 'ASC', 1300 'meta_key' => 'foo', 1301 'meta_query' => array( 1302 'relation' => 'AND', 1303 array( 1304 'key' => 'bar1', 1305 'value' => 'baz', 1306 'compare' => '=', 1307 ), 1308 array( 1309 'key' => 'bar2', 1310 'value' => 'baz', 1311 'compare' => '=', 1312 ), 1313 ), 1314 'update_post_meta_cache' => false, 1315 'update_post_term_cache' => false, 1316 'fields' => 'ids', 1317 ) ); 1397 $query = new WP_Query( 1398 array( 1399 'orderby' => 'meta_value', 1400 'order' => 'ASC', 1401 'meta_key' => 'foo', 1402 'meta_query' => array( 1403 'relation' => 'AND', 1404 array( 1405 'key' => 'bar1', 1406 'value' => 'baz', 1407 'compare' => '=', 1408 ), 1409 array( 1410 'key' => 'bar2', 1411 'value' => 'baz', 1412 'compare' => '=', 1413 ), 1414 ), 1415 'update_post_meta_cache' => false, 1416 'update_post_term_cache' => false, 1417 'fields' => 'ids', 1418 ) 1419 ); 1318 1420 1319 1421 $this->assertEquals( array( $posts[2], $posts[0], $posts[1] ), $query->posts ); … … 1333 1435 add_post_meta( $p3, 'foo3', 'bar' ); 1334 1436 1335 $query = new WP_Query( array( 1336 'update_post_meta_cache' => false, 1337 'update_term_meta_cache' => false, 1338 'fields' => 'ids', 1339 'meta_query' => array( 1340 'relation' => 'OR', 1341 array( 1342 'key' => 'foo', 1343 'value' => 'bar', 1344 ), 1345 array( 1346 'relation' => 'AND', 1347 array( 1348 'key' => 'foo2', 1437 $query = new WP_Query( 1438 array( 1439 'update_post_meta_cache' => false, 1440 'update_term_meta_cache' => false, 1441 'fields' => 'ids', 1442 'meta_query' => array( 1443 'relation' => 'OR', 1444 array( 1445 'key' => 'foo', 1349 1446 'value' => 'bar', 1350 1447 ), 1351 1448 array( 1352 'key' => 'foo3', 1353 'value' => 'bar', 1354 ), 1355 ), 1356 ), 1357 ) ); 1449 'relation' => 'AND', 1450 array( 1451 'key' => 'foo2', 1452 'value' => 'bar', 1453 ), 1454 array( 1455 'key' => 'foo3', 1456 'value' => 'bar', 1457 ), 1458 ), 1459 ), 1460 ) 1461 ); 1358 1462 1359 1463 $expected = array( $p1, $p3 ); … … 1374 1478 add_post_meta( $p3, 'foo4', 'bar' ); 1375 1479 1376 $query = new WP_Query( array( 1377 'update_post_meta_cache' => false, 1378 'update_term_meta_cache' => false, 1379 'fields' => 'ids', 1380 'meta_query' => array( 1381 'relation' => 'OR', 1382 array( 1383 'key' => 'foo', 1384 'value' => 'bar', 1385 ), 1386 array( 1480 $query = new WP_Query( 1481 array( 1482 'update_post_meta_cache' => false, 1483 'update_term_meta_cache' => false, 1484 'fields' => 'ids', 1485 'meta_query' => array( 1387 1486 'relation' => 'OR', 1388 1487 array( 1389 'key' => 'foo2',1488 'key' => 'foo', 1390 1489 'value' => 'bar', 1391 1490 ), 1392 1491 array( 1393 'relation' => ' AND',1492 'relation' => 'OR', 1394 1493 array( 1395 'key' => 'foo3',1494 'key' => 'foo2', 1396 1495 'value' => 'bar', 1397 1496 ), 1398 1497 array( 1399 'key' => 'foo4', 1400 'value' => 'bar', 1498 'relation' => 'AND', 1499 array( 1500 'key' => 'foo3', 1501 'value' => 'bar', 1502 ), 1503 array( 1504 'key' => 'foo4', 1505 'value' => 'bar', 1506 ), 1401 1507 ), 1402 1508 ), 1403 1509 ), 1404 ) ,1405 ) );1510 ) 1511 ); 1406 1512 1407 1513 $expected = array( $p1, $p3 ); … … 1422 1528 1423 1529 $args = array( 1424 'meta_key' => 'time',1425 'meta_value' => array( 1, 1000 ),1426 'meta_type' => 'numeric',1427 'meta_compare' => 'NOT BETWEEN' 1428 1530 'meta_key' => 'time', 1531 'meta_value' => array( 1, 1000 ), 1532 'meta_type' => 'numeric', 1533 'meta_compare' => 'NOT BETWEEN', 1534 ); 1429 1535 1430 1536 $query = new WP_Query( $args ); 1431 $this->assertEquals( 2, count 1537 $this->assertEquals( 2, count( $query->posts ) ); 1432 1538 foreach ( $query->posts as $post ) { 1433 1539 $this->assertInstanceOf( 'WP_Post', $post ); … … 1438 1544 1439 1545 $args = array( 1440 'meta_key' => 'time',1441 'meta_value' => array( 1, 1000 ),1442 'meta_type' => 'numeric',1443 'meta_compare' => 'BETWEEN' 1444 1546 'meta_key' => 'time', 1547 'meta_value' => array( 1, 1000 ), 1548 'meta_type' => 'numeric', 1549 'meta_compare' => 'BETWEEN', 1550 ); 1445 1551 1446 1552 $query = new WP_Query( $args ); 1447 $this->assertEquals( 3, count 1553 $this->assertEquals( 3, count( $query->posts ) ); 1448 1554 foreach ( $query->posts as $post ) { 1449 1555 $this->assertInstanceOf( 'WP_Post', $post ); … … 1470 1576 add_post_meta( $post_id5, 'foo', 'tango' ); 1471 1577 1472 $posts = get_posts( array( 1473 'meta_key' => 'foo', 1474 'meta_value' => array( 'bar', 'baz' ) 1475 ) ); 1578 $posts = get_posts( 1579 array( 1580 'meta_key' => 'foo', 1581 'meta_value' => array( 'bar', 'baz' ), 1582 ) 1583 ); 1476 1584 1477 1585 $this->assertEquals( 2, count( $posts ) ); … … 1479 1587 $this->assertEqualSets( array( $post_id, $post_id3 ), $posts ); 1480 1588 1481 $posts = get_posts( array( 1482 'meta_key' => 'foo', 1483 'meta_value' => array( 'bar', 'baz' ), 1484 'meta_compare' => 'IN' 1485 ) ); 1589 $posts = get_posts( 1590 array( 1591 'meta_key' => 'foo', 1592 'meta_value' => array( 'bar', 'baz' ), 1593 'meta_compare' => 'IN', 1594 ) 1595 ); 1486 1596 1487 1597 $this->assertEquals( 2, count( $posts ) ); … … 1508 1618 $args = array( 1509 1619 'meta_query' => array( 1510 array(1511 'value'=> 'lorem',1512 'compare' => 'LIKE'1513 )1514 ) 1620 array( 1621 'value' => 'lorem', 1622 'compare' => 'LIKE', 1623 ), 1624 ), 1515 1625 ); 1516 1626 … … 1544 1654 add_post_meta( $post_id6, 'baz', 0 ); 1545 1655 1546 $q = new WP_Query( array( 'meta_key' => 'foo', 'meta_value' => '0' ) ); 1547 $this->assertEquals( 1, count ( $q->posts ) ); 1656 $q = new WP_Query( 1657 array( 1658 'meta_key' => 'foo', 1659 'meta_value' => '0', 1660 ) 1661 ); 1662 $this->assertEquals( 1, count( $q->posts ) ); 1548 1663 foreach ( $q->posts as $post ) { 1549 1664 $this->assertInstanceOf( 'WP_Post', $post ); … … 1552 1667 $this->assertEquals( $post_id, $q->posts[0]->ID ); 1553 1668 1554 $posts = get_posts( array( 'meta_key' => 'bar', 'meta_value' => '0' ) ); 1555 $this->assertEquals( 2, count ( $posts ) ); 1669 $posts = get_posts( 1670 array( 1671 'meta_key' => 'bar', 1672 'meta_value' => '0', 1673 ) 1674 ); 1675 $this->assertEquals( 2, count( $posts ) ); 1556 1676 foreach ( $posts as $post ) { 1557 1677 $this->assertInstanceOf( 'WP_Post', $post ); … … 1561 1681 $this->assertEqualSets( array( $post_id, $post_id5 ), $posts ); 1562 1682 1563 $posts = get_posts( array( 'meta_key' => 'bar', 'meta_value' => 0 ) ); 1564 $this->assertEquals( 2, count ( $posts ) ); 1683 $posts = get_posts( 1684 array( 1685 'meta_key' => 'bar', 1686 'meta_value' => 0, 1687 ) 1688 ); 1689 $this->assertEquals( 2, count( $posts ) ); 1565 1690 foreach ( $posts as $post ) { 1566 1691 $this->assertInstanceOf( 'WP_Post', $post ); … … 1571 1696 1572 1697 $posts = get_posts( array( 'meta_value' => 0 ) ); 1573 $this->assertEquals( 5, count 1698 $this->assertEquals( 5, count( $posts ) ); 1574 1699 foreach ( $posts as $post ) { 1575 1700 $this->assertInstanceOf( 'WP_Post', $post ); … … 1580 1705 1581 1706 $posts = get_posts( array( 'meta_value' => '0' ) ); 1582 $this->assertEquals( 5, count 1707 $this->assertEquals( 5, count( $posts ) ); 1583 1708 foreach ( $posts as $post ) { 1584 1709 $this->assertInstanceOf( 'WP_Post', $post ); … … 1598 1723 add_post_meta( $posts[2], 'foo', 'jjj' ); 1599 1724 1600 $q = new WP_Query( array( 1601 'fields' => 'ids', 1602 'meta_query' => array( 1603 'foo_key' => array( 1604 'key' => 'foo', 1605 'compare' => 'EXISTS', 1606 ), 1607 ), 1608 'orderby' => 'foo_key', 1609 'order' => 'DESC', 1610 ) ); 1725 $q = new WP_Query( 1726 array( 1727 'fields' => 'ids', 1728 'meta_query' => array( 1729 'foo_key' => array( 1730 'key' => 'foo', 1731 'compare' => 'EXISTS', 1732 ), 1733 ), 1734 'orderby' => 'foo_key', 1735 'order' => 'DESC', 1736 ) 1737 ); 1611 1738 1612 1739 $this->assertEquals( array( $posts[1], $posts[2], $posts[0] ), $q->posts ); … … 1617 1744 */ 1618 1745 public function test_orderby_clause_key_as_secondary_sort() { 1619 $p1 = self::factory()->post->create( array( 1620 'post_date' => '2015-01-28 03:00:00', 1621 ) ); 1622 $p2 = self::factory()->post->create( array( 1623 'post_date' => '2015-01-28 05:00:00', 1624 ) ); 1625 $p3 = self::factory()->post->create( array( 1626 'post_date' => '2015-01-28 03:00:00', 1627 ) ); 1746 $p1 = self::factory()->post->create( 1747 array( 1748 'post_date' => '2015-01-28 03:00:00', 1749 ) 1750 ); 1751 $p2 = self::factory()->post->create( 1752 array( 1753 'post_date' => '2015-01-28 05:00:00', 1754 ) 1755 ); 1756 $p3 = self::factory()->post->create( 1757 array( 1758 'post_date' => '2015-01-28 03:00:00', 1759 ) 1760 ); 1628 1761 1629 1762 add_post_meta( $p1, 'foo', 'jjj' ); … … 1631 1764 add_post_meta( $p3, 'foo', 'aaa' ); 1632 1765 1633 $q = new WP_Query( array( 1634 'fields' => 'ids', 1635 'meta_query' => array( 1636 'foo_key' => array( 1637 'key' => 'foo', 1638 'compare' => 'EXISTS', 1639 ), 1640 ), 1641 'orderby' => array( 1642 'post_date' => 'asc', 1643 'foo_key' => 'asc', 1644 ), 1645 ) ); 1766 $q = new WP_Query( 1767 array( 1768 'fields' => 'ids', 1769 'meta_query' => array( 1770 'foo_key' => array( 1771 'key' => 'foo', 1772 'compare' => 'EXISTS', 1773 ), 1774 ), 1775 'orderby' => array( 1776 'post_date' => 'asc', 1777 'foo_key' => 'asc', 1778 ), 1779 ) 1780 ); 1646 1781 1647 1782 $this->assertEquals( array( $p3, $p1, $p2 ), $q->posts ); … … 1661 1796 add_post_meta( $posts[2], 'bar', 'bbb' ); 1662 1797 1663 $q = new WP_Query( array( 1664 'fields' => 'ids', 1665 'meta_query' => array( 1666 'foo_key' => array( 1667 'key' => 'foo', 1668 'compare' => 'EXISTS', 1669 ), 1670 'bar_key' => array( 1671 'key' => 'bar', 1672 'compare' => 'EXISTS', 1673 ), 1674 ), 1675 'orderby' => array( 1676 'foo_key' => 'asc', 1677 'bar_key' => 'desc', 1678 ), 1679 ) ); 1798 $q = new WP_Query( 1799 array( 1800 'fields' => 'ids', 1801 'meta_query' => array( 1802 'foo_key' => array( 1803 'key' => 'foo', 1804 'compare' => 'EXISTS', 1805 ), 1806 'bar_key' => array( 1807 'key' => 'bar', 1808 'compare' => 'EXISTS', 1809 ), 1810 ), 1811 'orderby' => array( 1812 'foo_key' => 'asc', 1813 'bar_key' => 'desc', 1814 ), 1815 ) 1816 ); 1680 1817 1681 1818 $this->assertEquals( array( $posts[2], $posts[0], $posts[1] ), $q->posts ); … … 1686 1823 */ 1687 1824 public function test_duplicate_clause_keys_should_be_made_unique() { 1688 $q = new WP_Query( array( 1689 'fields' => 'ids', 1690 'meta_query' => array( 1691 'foo_key' => array( 1692 'key' => 'foo', 1693 'compare' => 'EXISTS', 1694 ), 1695 array( 1825 $q = new WP_Query( 1826 array( 1827 'fields' => 'ids', 1828 'meta_query' => array( 1696 1829 'foo_key' => array( 1697 'key' => 'bar',1830 'key' => 'foo', 1698 1831 'compare' => 'EXISTS', 1699 1832 ), 1700 ), 1701 array( 1702 'foo_key' => array( 1703 'key' => 'baz', 1704 'compare' => 'EXISTS', 1705 ), 1706 ), 1707 ), 1708 ) ); 1833 array( 1834 'foo_key' => array( 1835 'key' => 'bar', 1836 'compare' => 'EXISTS', 1837 ), 1838 ), 1839 array( 1840 'foo_key' => array( 1841 'key' => 'baz', 1842 'compare' => 'EXISTS', 1843 ), 1844 ), 1845 ), 1846 ) 1847 ); 1709 1848 1710 1849 $this->assertEqualSets( array( 'foo_key', 'foo_key-1', 'foo_key-2' ), array_keys( $q->meta_query->get_clauses() ) );
Note: See TracChangeset
for help on using the changeset viewer.