WordPress.org

Make WordPress Core

Changeset 5612


Ignore:
Timestamp:
05/31/07 03:44:18 (7 years ago)
Author:
ryan
Message:

If a term has no children, return an empty array for child_of queries. see #4189

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/template.php

    r5608 r5612  
    8686 
    8787function get_nested_categories( $default = 0, $parent = 0 ) { 
    88     global $post_ID, $mode, $wpdb; 
    89  
    90     if ( $post_ID ) { 
    91         $checked_categories = wp_get_post_categories($post_ID); 
    92  
    93         if ( count( $checked_categories ) == 0 ) { 
    94             // No selected categories, strange 
     88    global $post_ID, $mode, $wpdb, $checked_categories; 
     89 
     90    if ( empty($checked_categories) ) { 
     91        if ( $post_ID ) { 
     92            $checked_categories = wp_get_post_categories($post_ID); 
     93 
     94            if ( count( $checked_categories ) == 0 ) { 
     95                // No selected categories, strange 
    9596            $checked_categories[] = $default; 
    96         } 
    97     } else { 
    98         $checked_categories[] = $default; 
     97            } 
     98        } else { 
     99            $checked_categories[] = $default; 
     100        } 
    99101    } 
    100102 
    101103    $cats = get_categories("child_of=$parent&hide_empty=0&fields=ids"); 
     104 
    102105    $result = array (); 
    103  
    104106    if ( is_array( $cats ) ) { 
    105107        foreach ( $cats as $cat) { 
    106             // TODO fix hierarchy 
    107             //$result[$cat]['children'] = get_nested_categories( $default, $cat); 
     108            $result[$cat]['children'] = get_nested_categories( $default, $cat); 
    108109            $result[$cat]['cat_ID'] = $cat; 
    109110            $result[$cat]['checked'] = in_array( $cat, $checked_categories ); 
  • trunk/wp-includes/taxonomy.php

    r5598 r5612  
    408408function get_object_terms($object_ids, $taxonomies, $args = array()) { 
    409409    global $wpdb; 
    410      
     410    error_log("Objects: " . var_export($object_ids, true), 0); 
    411411    if ( !is_array($taxonomies) ) 
    412412        $taxonomies = array($taxonomies); 
     
    483483    extract($args); 
    484484 
     485    if ( $child_of ) { 
     486        $hierarchy = _get_term_hierarchy($taxonomies[0]); 
     487        if ( !isset($hierarchy[$child_of]) ) 
     488            return array(); 
     489    } 
     490 
    485491    $key = md5( serialize( $args ) . serialize( $taxonomies ) ); 
    486492    if ( $cache = wp_cache_get( 'get_terms', 'terms' ) ) { 
Note: See TracChangeset for help on using the changeset viewer.