walk_page_tree()
云策文档标注
概述
walk_page_tree() 函数用于生成页面列表的 HTML 内容,通过 Walker_Page 或自定义 Walker 类实现层级遍历。它处理页面数组,设置子页面关系,并调用 walker 的 walk() 方法输出结果。
关键要点
- 函数接受四个参数:$pages(页面数组)、$depth(深度)、$current_page(当前页面 ID)、$args(参数数组),返回 HTML 字符串。
- 如果 $args['walker'] 未设置,默认使用 Walker_Page 类;否则使用自定义 Walker 类。
- 函数遍历页面数组,为有子页面的父页面设置 $args['pages_with_children'] 标志。
- 最终调用 $walker->walk() 方法生成层级列表。
- 此函数被 wp_list_pages() 调用,用于在 WordPress 中显示页面列表。
代码示例
function walk_page_tree( $pages, $depth, $current_page, $args ) {
if ( empty( $args['walker'] ) ) {
$walker = new Walker_Page();
} else {
/**
* @var Walker $walker
*/
$walker = $args['walker'];
}
foreach ( (array) $pages as $page ) {
if ( $page->post_parent ) {
$args['pages_with_children'][ $page->post_parent ] = true;
}
}
return $walker->walk( $pages, $depth, $args, $current_page );
}
原文内容
Retrieves HTML list content for page list.
Parameters
$pagesarrayrequired$depthintrequired$current_pageintrequired$argsarrayrequired
Source
function walk_page_tree( $pages, $depth, $current_page, $args ) {
if ( empty( $args['walker'] ) ) {
$walker = new Walker_Page();
} else {
/**
* @var Walker $walker
*/
$walker = $args['walker'];
}
foreach ( (array) $pages as $page ) {
if ( $page->post_parent ) {
$args['pages_with_children'][ $page->post_parent ] = true;
}
}
return $walker->walk( $pages, $depth, $args, $current_page );
}
Changelog
| Version | Description |
|---|---|
| 2.1.0 | Introduced. |