get_ancestors( int $object_id = 0, string $object_type = '', string $resource_type = '' ): int[]
- Since
- 3.1.0, 4.1.0
- Source
wp-includes/taxonomy.php:4990
Gets an array of ancestor IDs for a given object.
Parameters
$object_idintoptional- The ID of the object. Default 0.Default:
0 $object_typestringoptional- The type of object for which we'll be retrieving ancestors. Accepts a post type or a taxonomy name. Default empty.Default:
'' $resource_typestringoptional- Type of resource $object_type is. Accepts 'post_type' or 'taxonomy'. Default empty.Default:
''
Return
int[]- An array of IDs of ancestors from lowest to highest in the hierarchy.
Hooks fired · 2
2 hooks fire while get_ancestors() runs, in this order:
- apply_filters( get_ancestors )filterline 5030 (+40 into the body)
Filters a given object's ancestors.
Uses · 6
- apply_filters()Calls the callback functions that have been added to a filter hook.
- is_taxonomy_hierarchical()Determines whether the taxonomy object is hierarchical.
- post_type_exists()Determines whether a post type is registered.
- get_term()Gets all term data from database by term ID.
- is_wp_error()Checks whether the given variable is a WordPress Error.
- get_post_ancestors()Retrieves the IDs of the ancestors of a post.
Used by · 4
- WP_Terms_List_Table::single_row()
- get_term_link()Generates a permalink for a taxonomy term archive.
- get_term_parents_list()Retrieves term parents with separator.
- wp_ajax_add_tag()Handles adding a tag via AJAX.
Source
function get_ancestors( $object_id = 0, $object_type = '', $resource_type = '' ) { $object_id = (int) $object_id; $ancestors = array(); if ( empty( $object_id ) ) { /** This filter is documented in wp-includes/taxonomy.php */ return apply_filters( 'get_ancestors', $ancestors, $object_id, $object_type, $resource_type ); } if ( ! $resource_type ) { if ( is_taxonomy_hierarchical( $object_type ) ) { $resource_type = 'taxonomy'; } elseif ( post_type_exists( $object_type ) ) { $resource_type = 'post_type'; } } if ( 'taxonomy' === $resource_type ) { $term = get_term( $object_id, $object_type ); while ( ! is_wp_error( $term ) && ! empty( $term->parent ) && ! in_array( $term->parent, $ancestors, true ) ) { $ancestors[] = (int) $term->parent; $term = get_term( $term->parent, $object_type ); } } elseif ( 'post_type' === $resource_type ) { $ancestors = get_post_ancestors( $object_id ); } /** * Filters a given object's ancestors. * * @since 3.1.0 * @since 4.1.1 Introduced the `$resource_type` parameter. * * @param int[] $ancestors An array of IDs of object ancestors. * @param int $object_id Object ID. * @param string $object_type Type of object. * @param string $resource_type Type of resource $object_type is. */ return apply_filters( 'get_ancestors', $ancestors, $object_id, $object_type, $resource_type );}History
Introduced in 4.1.0. Unchanged from 6.7.7 through 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
4.1.0
Introduced the
$resource_type argument.from the docblock3.1.0
Introduced.from the docblock
About this page
- Parsed data
- Generated from the wordpress-develop 6.9.7 tag, from
src/wp-includes/taxonomy.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it. - Corrections
- Something wrong on this page? Report it and it gets fixed in the next regeneration.