A WordPress-centric search engine for devs and theme authors



get_term_children ›

Since2.3.0
Deprecatedn/a
get_term_children ( $term_id, $taxonomy )
Parameters: (2)
  • (int) $term_id ID of Term to get children.
    Required: Yes
  • (string) $taxonomy Taxonomy Name.
    Required: Yes
Returns:
  • (array|WP_Error) List of Term IDs. WP_Error returned if `$taxonomy` does not exist.
Defined at:
Codex:

Merge all term children into a single array of their IDs.

This recursive function will merge all of the children of $term into the same array of term IDs. Only useful for taxonomies which are hierarchical.

Will return an empty array if $term does not exist in $taxonomy.



Source

function get_term_children( $term_id, $taxonomy ) {
	if ( ! taxonomy_exists( $taxonomy ) ) {
		return new WP_Error( 'invalid_taxonomy', __( 'Invalid taxonomy.' ) );
	}

	$term_id = intval( $term_id );

	$terms = _get_term_hierarchy( $taxonomy );

	if ( ! isset( $terms[ $term_id ] ) ) {
		return array();
	}

	$children = $terms[ $term_id ];

	foreach ( (array) $terms[ $term_id ] as $child ) {
		if ( $term_id == $child ) {
			continue;
		}

		if ( isset( $terms[ $child ] ) ) {
			$children = array_merge( $children, get_term_children( $child, $taxonomy ) );
		}
	}

	return $children;
}