get_page_hierarchy() WordPress Function
The get_page_hierarchy() function will return an array of all the pages on a WordPress site, organized by parent and child pages. This is helpful for creating a navigation menu or for display purposes.
get_page_hierarchy( WP_Post[] $pages, int $page_id ) #
Order 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
- $pages
(WP_Post[])(Required)Posts array (passed by reference).
- $page_id
(int)(Optional) Parent page ID. Default 0.
Return
(string[]) Array of post names keyed by ID and arranged by hierarchy. Children immediately follow their parents.
Source
File: wp-includes/post.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; }
Expand full source codeCollapse full source codeView on TracView on GitHub
Changelog
Version | Description |
---|---|
2.0.0 | Introduced. |