A WordPress-centric search engine for devs and theme authors



get_category_children ›

Since1.2.0
Deprecated2.8.0
get_category_children ( $id, $before = '/', $after = '', $visited = array() )
Parameters: (4)
  • (int) $id Category ID to retrieve children.
    Required: Yes
  • (string) $before Optional. Prepend before category term ID.
    Required: No
    Default: '/'
  • (string) $after Optional, default is empty string. Append after category term ID.
    Required: No
    Default: (empty)
  • (array) $visited Optional. Category Term IDs that have already been added.
    Required: No
    Default: array()
See:
Returns:
  • (string)
Defined at:
Codex:

Retrieve category children list separated before and after the term IDs.



Source

function get_category_children( $id, $before = '/', $after = '', $visited = array() ) {
	_deprecated_function( __FUNCTION__, '2.8.0', 'get_term_children()' );
	if ( 0 == $id )
		return '';

	$chain = '';
	/** TODO: consult hierarchy */
	$cat_ids = get_all_category_ids();
	foreach ( (array) $cat_ids as $cat_id ) {
		if ( $cat_id == $id )
			continue;

		$category = get_category( $cat_id );
		if ( is_wp_error( $category ) )
			return $category;
		if ( $category->parent == $id && !in_array( $category->term_id, $visited ) ) {
			$visited[] = $category->term_id;
			$chain .= $before.$category->term_id.$after;
			$chain .= get_category_children( $category->term_id, $before, $after );
		}
	}
	return $chain;
}