diff --git a/wp-includes/template-functions-category.php b/wp-includes/template-functions-category.php index 7cc72acebf..50e256604e 100644 --- a/wp-includes/template-functions-category.php +++ b/wp-includes/template-functions-category.php @@ -123,16 +123,20 @@ function get_category_parents($id, $link = FALSE, $separator = '/', $nicename = } function get_category_children($id, $before = '/', $after = '') { - global $cache_categories; - $c_cache = $cache_categories; // Can't do recursive foreach on a global, have to make a copy - $chain = ''; - foreach ($c_cache as $category){ - if ($category->category_parent == $id){ - $chain .= $before.$category->cat_ID.$after; - $chain .= get_category_children($category->cat_ID, $before, $after); - } - } - return $chain; + global $cache_categories; + + if ( ! isset($cache_categories)) + update_category_cache(); + + $c_cache = $cache_categories; // Can't do recursive foreach on a global, have to make a copy + $chain = ''; + foreach ($c_cache as $category){ + if ($category->category_parent == $id){ + $chain .= $before.$category->cat_ID.$after; + $chain .= get_category_children($category->cat_ID, $before, $after); + } + } + return $chain; } // Deprecated.