get_page_hierarchy( WP_Post[] $pages, int $page_id )
Order the pages with children under parents in a flat list.
Description Description
It uses auxiliary structure to hold parent-children relationships and runs in O(N) complexity
Parameters Parameters
- $pages
-
(WP_Post[]) (Required) Posts array (passed by reference).
- $page_id
-
(int) (Optional) Parent page ID. Default 0.
Return Return
(string[]) Array of post names keyed by ID and arranged by hierarchy. Children immediately follow their parents.
Source Source
File: wp-includes/post.php
5269 5270 5271 5272 5273 5274 5275 5276 5277 5278 5279 5280 5281 5282 5283 5284 |
function get_page_hierarchy( & $pages , $page_id = 0 ) { if ( empty ( $pages ) ) { return array (); } $children = array (); foreach ( ( array ) $pages as $p ) { $parent_id = intval ( $p ->post_parent ); $children [ $parent_id ][] = $p ; } $result = array (); _page_traverse_name( $page_id , $children , $result ); return $result ; } |
Expand full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
2.0.0 | Introduced. |