Make WordPress Core


Ignore:
Timestamp:
05/31/2007 03:44:18 AM (19 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.