get_ancestors()

You are here:

get_ancestors( int $object_idstring $object_type = string $resource_type =  )

Get an array of ancestor IDs for a given object.

Parameters 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: ”


Top ↑

Return Return

(int[]) An array of IDs of ancestors from lowest to highest in the hierarchy.


Top ↑

Source Source

File: wp-includes/taxonomy.php

4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
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 );
}


Top ↑

Changelog Changelog

Changelog
Version Description
4.1.0 Introduced the $resource_type argument.
3.1.0 Introduced.
Was this article helpful?
Dislike 0
Views: 9