get_page_hierarchy

函数


get_page_hierarchy ( $pages, $page_id = 0 )
参数
  • (WP_Post[])
    $pages
    Posts array (passed by reference).
    Required:
  • (int)
    $page_id
    Optional. Parent page ID. Default 0.
    Required:
返回值
  • (string[]) Array of post names keyed by ID and arranged by hierarchy. Children immediately follow their parents.
定义位置
  • wp-includes/post.php
    , line 5851
引入
2.0.0
弃用

在一个扁平的列表中,将有子页面排在父级页面之下。

它使用辅助结构来保持父子关系,并以O(N)的复杂性运行。

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