get_ancestors() – Get an array of ancestor IDs for a given object.

You appear to be a bot. Output may be restricted

Description

Gets an array of ancestor IDs for a given object.

Usage

$int[] = get_ancestors( $object_id, $object_type, $resource_type );

Parameters

$object_id
( int ) optional – Optional. The ID of the object. Default 0.
$object_type
( string ) optional – Optional. The type of object for which we'll be retrieving ancestors. Accepts a post type or a taxonomy name. Default empty.
$resource_type
( string ) optional – Optional. Type of resource $object_type is. Accepts 'post_type' or 'taxonomy'. Default empty.

Returns

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

Source

File name: wordpress/wp-includes/taxonomy.php
Lines:

1 to 42 of 42
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 );
}
 

 View on GitHub View on Trac