Changeset 34696
- Timestamp:
- 09/29/2015 07:11:12 PM (9 years ago)
- Location:
- trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/category-template.php
r34625 r34696 499 499 * @type int $child_of Term ID to retrieve child terms of. See {@link get_terms()}. Default 0. 500 500 * @type array|string $exclude Array or comma/space-separated string of term IDs to exclude. 501 * See {@link get_terms()}. Default empty string. 501 * If `$hierarchical` is true, descendants of `$exclude` terms will also 502 * be excluded; see `$exclude_tree`. See {@link get_terms()}. 503 * Default empty string. 502 504 * @type array|string $exclude_tree Array or comma/space-separated string of term IDs to exclude, along 503 505 * with their descendants. See {@link get_terms()}. Default empty string. … … 537 539 $r['pad_counts'] = true; 538 540 541 // Descendants of exclusions should be excluded too. 539 542 if ( true == $r['hierarchical'] ) { 540 $r['exclude_tree'] = $r['exclude']; 543 $exclude_tree = array(); 544 545 if ( $r['exclude_tree'] ) { 546 $exclude_tree = array_merge( $exclude_tree, (array) $r['exclude_tree'] ); 547 } 548 549 if ( $r['exclude'] ) { 550 $exclude_tree = array_merge( $exclude_tree, (array) $r['exclude'] ); 551 } 552 553 $r['exclude_tree'] = $exclude_tree; 541 554 $r['exclude'] = ''; 542 555 } -
trunk/tests/phpunit/tests/category/wpListCategories.php
r33804 r34696 265 265 $this->assertContains( '<li class="categories">Categories', $found ); 266 266 } 267 268 /** 269 * @ticket 12981 270 */ 271 public function test_exclude_tree_should_be_respected() { 272 $c = $this->factory->category->create(); 273 $parent = $this->factory->category->create( array( 'name' => 'Parent', 'slug' => 'parent' ) ); 274 $child = $this->factory->category->create( array( 'name' => 'Child', 'slug' => 'child', 'parent' => $parent ) ); 275 276 $args = array( 'echo' => 0, 'hide_empty' => 0, 'exclude_tree' => $parent ); 277 278 $actual = wp_list_categories( $args ); 279 280 $this->assertNotContains( '<li class="cat-item cat-item-' . $parent . '">', $actual ); 281 282 $this->assertNotContains( '<li class="cat-item cat-item-' . $child . '">', $actual ); 283 } 284 285 /** 286 * @ticket 12981 287 */ 288 public function test_exclude_tree_should_be_merged_with_exclude() { 289 $c = $this->factory->category->create(); 290 $parent = $this->factory->category->create( array( 'name' => 'Parent', 'slug' => 'parent' ) ); 291 $child = $this->factory->category->create( array( 'name' => 'Child', 'slug' => 'child', 'parent' => $parent ) ); 292 $parent2 = $this->factory->category->create( array( 'name' => 'Parent', 'slug' => 'parent2' ) ); 293 $child2 = $this->factory->category->create( array( 'name' => 'Child', 'slug' => 'child2', 'parent' => $parent2 ) ); 294 295 $args = array( 'echo' => 0, 'hide_empty' => 0, 'exclude_tree' => $parent ); 296 297 $actual = wp_list_categories( array( 298 'echo' => 0, 299 'hide_empty' => 0, 300 'exclude' => $parent, 301 'exclude_tree' => $parent2, 302 ) ); 303 304 $this->assertNotContains( '<li class="cat-item cat-item-' . $parent . '">', $actual ); 305 $this->assertNotContains( '<li class="cat-item cat-item-' . $parent2 . '">', $actual ); 306 $this->assertNotContains( '<li class="cat-item cat-item-' . $child . '">', $actual ); 307 308 $this->assertNotContains( '<li class="cat-item cat-item-' . $child2 . '">', $actual ); 309 } 267 310 }
Note: See TracChangeset
for help on using the changeset viewer.