# get_ancestors()

URL: https://chugunov.pro/api-wordpress/functions/get_ancestors/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 4.1.0.

## Сигнатура

```php
get_ancestors( int $object_id, string $object_type = '', string $resource_type = '' ): int[]
```

## Описание

Возвращает массив ID предков для указанного объекта.

## Параметры

- `$object_id` `int` — необязательный. ID объекта. Значение по умолчанию 0.
- `$object_type` `string` — необязательный, по умолчанию `''`. Тип объекта, для которого будут получены предки. Принимает тип записи или имя таксономии.
- `$resource_type` `string` — необязательный, по умолчанию `''`. Тип ресурса, которым является $object_type. Принимает 'post_type' или 'taxonomy'.

## Возвращаемое значение

`int[]`

## Исходный код

Файл: `wp-includes/taxonomy.php:4994`

```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 );
}
```

## История изменений

- 4.1.0 — Introduced the $resource_type argument.
- 3.1.0 — Introduced.

## Связанные

Использует: [`is_taxonomy_hierarchical`](https://chugunov.pro/api-wordpress/functions/is_taxonomy_hierarchical/), [`post_type_exists`](https://chugunov.pro/api-wordpress/functions/post_type_exists/), [`get_post_ancestors`](https://chugunov.pro/api-wordpress/functions/get_post_ancestors/), [`get_term`](https://chugunov.pro/api-wordpress/functions/get_term/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`is_wp_error`](https://chugunov.pro/api-wordpress/functions/is_wp_error/).
Используется в: [`get_term_parents_list`](https://chugunov.pro/api-wordpress/functions/get_term_parents_list/), [`wp_ajax_add_tag`](https://chugunov.pro/api-wordpress/functions/wp_ajax_add_tag/), `WP_Terms_List_Table::single_row`, [`get_term_link`](https://chugunov.pro/api-wordpress/functions/get_term_link/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/get_ancestors/
