WordPress如何显示子页面的所有子级页面,实现多级嵌套页面列表展示
WordPress 多级嵌套子页面列表实现方案
你使用的wp_list_pages原生就支持输出多层嵌套的页面结构,仅需要调整参数+补充对应缩进样式即可实现需求:
- 按需调整
child_of参数值,匹配你要展示的根页面ID - 显式声明
depth参数控制层级深度(默认值0就是展示所有层级) - 补充CSS实现嵌套层级的缩进效果
完整修改后代码
<div class="nav-col"> <?php global $post; // 要展示当前页面下的所有子页就用$post->ID,要展示当前页面父级下的所有页面就用$post->post_parent $root_page_id = $post->ID; ?> <div class="side-nav"> <?php wp_list_pages(array( 'child_of' => $root_page_id, 'title_li' => "", 'depth' => 0, // 0=无限制层级,可自行修改为最大展示层级,比如最多3级就填3 'sort_column' => 'menu_order' // 可选,按后台设置的页面排序规则展示 )); ?> </div> </div>
补充缩进样式
在你的主题CSS文件中加入以下代码,即可实现嵌套层级的缩进效果,匹配你预期的展示样式:
/* 二级及以下子页面缩进20px */ .side-nav ul ul { padding-left: 20px; margin: 8px 0; } /* 可选:调整列表项间距 */ .side-nav li { margin: 4px 0; }
如果你需要自定义列表的输出结构(比如添加自定义类名、修改标签结构),可以通过get_pages配合递归函数实现,不过默认wp_list_pages输出的语义化嵌套列表已经能满足绝大多数场景的需求。
内容的提问来源于stack exchange,提问作者monsaic123
相关产品推荐
相关产品推荐

