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

Orders the pages with children under parents in a flat list.

Description

It uses auxiliary structure to hold parent-children relationships and runs in O(N) complexity

Parameters

$pagesWP_Post[]required
Posts array (passed by reference).
$page_idintoptional
Parent page ID. Default 0.

Return

string[] Array of post names keyed by ID and arranged by hierarchy. Children immediately follow their parents.

Source

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

Changelog

VersionDescription
2.0.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.