函数文档

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

Return

string

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.