| 227 | |
| 228 | function test_get_terms_parent_zero() { |
| 229 | $tax = 'food'; |
| 230 | register_taxonomy( $tax, 'post', array( 'hierarchical' => true ) ); |
| 231 | |
| 232 | $cheese = $this->factory->term->create( array( 'name' => 'Cheese', 'taxonomy' => $tax ) ); |
| 233 | |
| 234 | $cheddar = $this->factory->term->create( array( 'name' => 'Cheddar', 'parent' => $cheese, 'taxonomy' => $tax ) ); |
| 235 | |
| 236 | $post_ids = $this->factory->post->create_many( 2 ); |
| 237 | foreach ( $post_ids as $id ) { |
| 238 | wp_set_post_terms( $id, $cheddar, $tax ); |
| 239 | } |
| 240 | $term = get_term( $cheddar, $tax ); |
| 241 | $this->assertEquals( 2, $term->count ); |
| 242 | |
| 243 | $brie = $this->factory->term->create( array( 'name' => 'Brie', 'parent' => $cheese, 'taxonomy' => $tax ) ); |
| 244 | $post_ids = $this->factory->post->create_many( 7 ); |
| 245 | foreach ( $post_ids as $id ) { |
| 246 | wp_set_post_terms( $id, $brie, $tax ); |
| 247 | } |
| 248 | $term = get_term( $brie, $tax ); |
| 249 | $this->assertEquals( 7, $term->count ); |
| 250 | |
| 251 | $crackers = $this->factory->term->create( array( 'name' => 'Crackers', 'taxonomy' => $tax ) ); |
| 252 | |
| 253 | $butter = $this->factory->term->create( array( 'name' => 'Butter', 'parent' => $crackers, 'taxonomy' => $tax ) ); |
| 254 | $post_ids = $this->factory->post->create_many( 1 ); |
| 255 | foreach ( $post_ids as $id ) { |
| 256 | wp_set_post_terms( $id, $butter, $tax ); |
| 257 | } |
| 258 | $term = get_term( $butter, $tax ); |
| 259 | $this->assertEquals( 1, $term->count ); |
| 260 | |
| 261 | $multigrain = $this->factory->term->create( array( 'name' => 'Multigrain', 'parent' => $crackers, 'taxonomy' => $tax ) ); |
| 262 | $post_ids = $this->factory->post->create_many( 3 ); |
| 263 | foreach ( $post_ids as $id ) { |
| 264 | wp_set_post_terms( $id, $multigrain, $tax ); |
| 265 | } |
| 266 | $term = get_term( $multigrain, $tax ); |
| 267 | $this->assertEquals( 3, $term->count ); |
| 268 | |
| 269 | $fruit = $this->factory->term->create( array( 'name' => 'Fruit', 'taxonomy' => $tax ) ); |
| 270 | $cranberries = $this->factory->term->create( array( 'name' => 'Cranberries', 'parent' => $fruit, 'taxonomy' => $tax ) ); |
| 271 | |
| 272 | $terms = get_terms( $tax, array( 'parent' => 0, 'cache_domain' => $tax ) ); |
| 273 | $this->assertNotEmpty( $terms ); |
| 274 | $this->assertEquals( wp_list_pluck( $terms, 'name' ), array( 'Cheese', 'Crackers' ) ); |
| 275 | } |