函数文档

_page_traverse_name()

💡 云策文档标注

概述

_page_traverse_name() 是一个 WordPress 内部函数,用于递归遍历根页面的所有嵌套子页面,并返回其 post_name 数组。该函数通过引用传递参数,高效处理页面层级关系。

关键要点

  • 函数功能:递归遍历指定页面 ID 的所有子页面,收集子页面的 post_name 并存储在结果数组中。
  • 参数说明:接受三个参数:$page_id(页面 ID,整数类型,必需)、$children(父-子关系数组,引用传递,必需)、$result(结果数组,引用传递,必需)。
  • 递归机制:使用递归调用 _page_traverse_name() 处理每个子页面,确保深度遍历所有嵌套层级。
  • 相关用途:被 get_page_hierarchy() 函数调用,用于在平面列表中按父-子关系排序页面。
  • 版本历史:自 WordPress 2.9.0 版本引入。

代码示例

function _page_traverse_name( $page_id, &$children, &$result ) {
    if ( isset( $children[ $page_id ] ) ) {
        foreach ( (array) $children[ $page_id ] as $child ) {
            $result[ $child->ID ] = $child->post_name;
            _page_traverse_name( $child->ID, $children, $result );
        }
    }
}

📄 原文内容

Traverses and return all the nested children post names of a root page.

Description

$children contains parent-children relations

See also

Parameters

$page_idintrequired
Page ID.
$childrenarrayrequired
Parent-children relations (passed by reference).
$resultstring[]required
Array of page names keyed by ID (passed by reference).

Source

function _page_traverse_name( $page_id, &$children, &$result ) {
	if ( isset( $children[ $page_id ] ) ) {
		foreach ( (array) $children[ $page_id ] as $child ) {
			$result[ $child->ID ] = $child->post_name;
			_page_traverse_name( $child->ID, $children, $result );
		}
	}
}

Changelog

Version Description
2.9.0 Introduced.