get_ancestors() WordPress Function
The get_ancestors() function returns an array of the post's ancestors' ids. The array is ordered from the top-level ancestor (the root id) to the current post's parent. If the post has no ancestors, the function returns an empty array.
get_ancestors( int $object_id, string $object_type = '', string $resource_type = '' ) #
Gets an array of ancestor IDs for a given object.
Parameters
- $object_id
(int)(Optional) The ID of the object. Default 0.
- $object_type
(string)(Optional) The type of object for which we'll be retrieving ancestors. Accepts a post type or a taxonomy name.
Default value: ''
- $resource_type
(string)(Optional) Type of resource $object_type is. Accepts 'post_type' or 'taxonomy'.
Default value: ''
Return
(int[]) An array of IDs of ancestors from lowest to highest in the hierarchy.
Source
File: wp-includes/taxonomy.php
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 ); }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
4.1.0 | Introduced the $resource_type argument. |
3.1.0 | Introduced. |