WordPress如何将courses分类的父分类与子分类分别渲染到独立区块
实现方案
直接使用以下代码替换原有代码即可实现需求:
<?php // 获取所有顶级父分类 $parent_args = array( 'taxonomy' => 'courses', 'hierarchical' => true, 'hide_empty' => false, 'parent' => 0, 'title_li' => '', ); $parent_cats = get_categories($parent_args); ?> <!-- 父分类独立区块 --> <div class="parent"> <ul> <?php wp_list_categories($parent_args); ?> </ul> </div> <!-- 子分类分组独立区块 --> <div class="children"> <?php // 遍历每个父分类,单独查询对应子分类分组输出 foreach ($parent_cats as $parent_cat) : $child_args = array( 'taxonomy' => 'courses', 'hide_empty' => false, 'title_li' => '', 'parent' => $parent_cat->term_id, ); $child_cats = get_categories($child_args); // 可选:跳过没有子分类的父分类,不输出空ul if (empty($child_cats)) continue; ?> <ul> <?php wp_list_categories($child_args); ?> </ul> <?php endforeach; ?> </div>
关键逻辑说明
- 首先调用
get_categories获取所有顶级父分类存储为数组,供后续子分类查询遍历使用 - 父分类渲染逻辑和你原有实现完全一致,没有额外改动
- 子分类部分通过循环每个父分类,传入父分类ID作为
parent参数查询子分类,即可实现按父分类对应关系分组输出 - 代码中已加入可选的空判断逻辑,没有子分类的父分类不会输出空的
<ul>标签,不需要可以直接删掉对应的判断行。
内容的提问来源于stack exchange,提问作者Sergey Pervushin
相关产品推荐
相关产品推荐

