WordPress Version: 6.1
//
// Private.
//
/**
* Retrieves children of taxonomy as term IDs.
*
* @access private
* @since 2.3.0
*
* @param string $taxonomy Taxonomy name.
* @return array Empty if $taxonomy isn't hierarchical or returns children as term IDs.
*/
function _get_term_hierarchy($taxonomy)
{
if (!is_taxonomy_hierarchical($taxonomy)) {
return array();
}
$children = get_option("{$taxonomy}_children");
if (is_array($children)) {
return $children;
}
$children = array();
$terms = get_terms(array('taxonomy' => $taxonomy, 'get' => 'all', 'orderby' => 'id', 'fields' => 'id=>parent', 'update_term_meta_cache' => false));
foreach ($terms as $term_id => $parent) {
if ($parent > 0) {
$children[$parent][] = $term_id;
}
}
update_option("{$taxonomy}_children", $children);
return $children;
}