| | 412 | |
| | 413 | function test_taxonomy_include_children() { |
| | 414 | $cat_a = $this->factory->term->create( array( 'taxonomy' => 'category', 'name' => 'Australia' ) ); |
| | 415 | $cat_b = $this->factory->term->create( array( 'taxonomy' => 'category', 'name' => 'Sydney', 'parent' => $cat_a ) ); |
| | 416 | $cat_c = $this->factory->term->create( array( 'taxonomy' => 'category', 'name' => 'East Syndney', 'parent' => $cat_b ) ); |
| | 417 | $cat_d = $this->factory->term->create( array( 'taxonomy' => 'category', 'name' => 'West Syndney', 'parent' => $cat_b ) ); |
| | 418 | |
| | 419 | $post_a = $this->factory->post->create( array( 'post_category' => array( $cat_a ) ) ); |
| | 420 | $post_b = $this->factory->post->create( array( 'post_category' => array( $cat_b ) ) ); |
| | 421 | $post_c = $this->factory->post->create( array( 'post_category' => array( $cat_c ) ) ); |
| | 422 | $post_d = $this->factory->post->create( array( 'post_category' => array( $cat_d ) ) ); |
| | 423 | |
| | 424 | $posts = get_posts( array( |
| | 425 | 'tax_query' => array( |
| | 426 | array( |
| | 427 | 'taxonomy' => 'category', |
| | 428 | 'field' => 'id', |
| | 429 | 'terms' => array( $cat_a ), |
| | 430 | ) |
| | 431 | ) |
| | 432 | ) ); |
| | 433 | |
| | 434 | $this->assertEquals( 4 , count( $posts ) ); |
| | 435 | |
| | 436 | $posts = get_posts( array( |
| | 437 | 'tax_query' => array( |
| | 438 | array( |
| | 439 | 'taxonomy' => 'category', |
| | 440 | 'field' => 'id', |
| | 441 | 'terms' => array( $cat_a ), |
| | 442 | 'include_children' => false |
| | 443 | ) |
| | 444 | ) |
| | 445 | ) ); |
| | 446 | |
| | 447 | $this->assertEquals( 1 , count( $posts ) ); |
| | 448 | |
| | 449 | $posts = get_posts( array( |
| | 450 | 'tax_query' => array( |
| | 451 | array( |
| | 452 | 'taxonomy' => 'category', |
| | 453 | 'field' => 'id', |
| | 454 | 'terms' => array( $cat_b ), |
| | 455 | ) |
| | 456 | ) |
| | 457 | ) ); |
| | 458 | |
| | 459 | $this->assertEquals( 3 , count( $posts ) ); |
| | 460 | |
| | 461 | $posts = get_posts( array( |
| | 462 | 'tax_query' => array( |
| | 463 | array( |
| | 464 | 'taxonomy' => 'category', |
| | 465 | 'field' => 'id', |
| | 466 | 'terms' => array( $cat_b ), |
| | 467 | 'include_children' => false |
| | 468 | ) |
| | 469 | ) |
| | 470 | ) ); |
| | 471 | |
| | 472 | $this->assertEquals( 1 , count( $posts ) ); |
| | 473 | |
| | 474 | $posts = get_posts( array( |
| | 475 | 'tax_query' => array( |
| | 476 | array( |
| | 477 | 'taxonomy' => 'category', |
| | 478 | 'field' => 'id', |
| | 479 | 'terms' => array( $cat_c ), |
| | 480 | ) |
| | 481 | ) |
| | 482 | ) ); |
| | 483 | |
| | 484 | $this->assertEquals( 1 , count( $posts ) ); |
| | 485 | |
| | 486 | $posts = get_posts( array( |
| | 487 | 'tax_query' => array( |
| | 488 | array( |
| | 489 | 'taxonomy' => 'category', |
| | 490 | 'field' => 'id', |
| | 491 | 'terms' => array( $cat_c ), |
| | 492 | 'include_children' => false |
| | 493 | ) |
| | 494 | ) |
| | 495 | ) ); |
| | 496 | |
| | 497 | $this->assertEquals( 1 , count( $posts ) ); |
| | 498 | } |