Opened 14 years ago
Closed 14 years ago
#14446 closed defect (bug) (fixed)
get_terms exclusions does not work w/ empty child_of taxonomies
Reported by: | layotte | Owned by: | |
---|---|---|---|
Milestone: | 3.1 | Priority: | normal |
Severity: | normal | Version: | 3.0 |
Component: | Taxonomy | Keywords: | has_patch |
Focuses: | Cc: |
Description (last modified by )
Just ran into this problem, I created a category heirarchy:
Departments - ESSE - KINS - CSSE - WELSF
But I did not want the category tree to show up in the category list. So I modified the wp_list_categories statement to be:
<?php wp_list_categories('title_li=&hide_empty=0&exclude=3878,3877'); ?>
3878 is the category ID of "Departments", it was excluding "Departments" without a problem, but was listing the children of Departments. At first I thought this might be a heirarchy vs. exlude_tree problem, then I realized that the problem was that these were newly created Categories and they were empty.
Currently during the exclusion process for $exclude_tree is to:
$excluded_children = (array) get_terms($taxonomies[0], array('child_of' => intval($extrunk), 'fields' => 'ids' ));
(line 925 of taxonomy.php)
This was returning an empty array because all the children were empty. My diff fixes this by adding 'hide_empty' => 0 to the get_terms command. If we're looking for children to exclude, we probably want to exclude the empty ones too :).
Diff attached.
its not duplicate as I do not want exclude cats, but I want all child_of a cat - it is a similiar problem, but the get_terms function has to be changed on different places!!!