WordPress.org

Make WordPress Core

Changeset 15654


Ignore:
Timestamp:
09/24/10 14:08:07 (7 years ago)
Author:
scribu
Message:

get_objects_in_term(): include term children when querying by slug. See #12891

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-includes/taxonomy.php

    r15631 r15654  
    472472        $operator = 'IN'; 
    473473 
     474    if ( is_taxonomy_hierarchical( $taxonomy ) && $include_children ) { 
     475        $children = array(); 
     476        foreach ( $terms as $term ) { 
     477            if ( 'term_id' != $field ) { 
     478                if ( $term = get_term_by( $field, $term, $taxonomy ) ) 
     479                    $term = $term->term_id; 
     480                else 
     481                    continue;                    
     482            } 
     483            $children = array_merge( $children, get_term_children( $term, $taxonomy ) ); 
     484            $children[] = $term; 
     485        } 
     486        $terms = $children; 
     487        $field = 'term_id'; 
     488    } 
     489 
    474490    $taxonomies = "'" . implode( "', '", $taxonomies ) . "'"; 
    475491 
     
    477493        case 'term_id': 
    478494            $terms = array_map( 'intval', $terms ); 
    479  
    480             if ( is_taxonomy_hierarchical( $taxonomy ) && $include_children ) { 
    481                 $children = $terms; 
    482                 foreach ( $terms as $term ) 
    483                     $children = array_merge( $children, get_term_children( $term, $taxonomy ) ); 
    484                 $terms = $children; 
    485             } 
    486495 
    487496            $terms = implode( ',', $terms ); 
Note: See TracChangeset for help on using the changeset viewer.