[wp-trac] [WordPress Trac] #14446: get_terms exclusions does not work w/ empty child_of taxonomies

WordPress Trac wp-trac at lists.automattic.com
Wed Jul 28 20:24:42 UTC 2010


#14446: get_terms exclusions does not work w/ empty child_of taxonomies
--------------------------+-------------------------------------------------
 Reporter:  layotte       |       Owner:                         
     Type:  defect (bug)  |      Status:  new                    
 Priority:  normal        |   Milestone:  3.1                    
Component:  Taxonomy      |     Version:  3.0                    
 Severity:  normal        |    Keywords:  has_patch needs_testing
--------------------------+-------------------------------------------------
Changes (by nacin):

  * keywords:  has_patch, needs_testing => has_patch needs_testing
  * milestone:  Awaiting Review => 3.1


Old description:

> 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.

New description:

 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.

--

-- 
Ticket URL: <http://core.trac.wordpress.org/ticket/14446#comment:1>
WordPress Trac <http://core.trac.wordpress.org/>
WordPress blogging software


More information about the wp-trac mailing list