Make WordPress Core


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

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

File:
1 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 );
Note: See TracChangeset for help on using the changeset viewer.