# get_page_hierarchy()

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

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

## Сигнатура

```php
get_page_hierarchy( WP_Post[] $pages, int $page_id ): string[]
```

## Описание

Использует вспомогательную структуру для хранения связей «родитель — потомки» и работает со сложностью O(N).

## Параметры

- `$pages` `WP_Post[]` — обязательный. Массив записей (передаётся по ссылке).
- `$page_id` `int` — необязательный. ID родительской страницы. Значение по умолчанию 0.

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

`string[]`

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

Файл: `wp-includes/post.php:6289`

```php
function get_page_hierarchy( &$pages, $page_id = 0 ) {
	if ( empty( $pages ) ) {
		return array();
	}

	$children = array();
	foreach ( (array) $pages as $p ) {
		$parent_id                = (int) $p->post_parent;
		$children[ $parent_id ][] = $p;
	}

	$result = array();
	_page_traverse_name( $page_id, $children, $result );

	return $result;
}
```

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

- 2.0.0 — Introduced.

## Связанные

Использует: [`_page_traverse_name`](https://chugunov.pro/api-wordpress/functions/_page_traverse_name/).
Используется в: `WP_Rewrite::page_uri_index`.

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