_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. |