# 调用指定分类的子分类(函数法)
> 前面介绍的灵活调用子分类虽然可以自由编写HTML结构,但是经过实际测试,似乎只能调用二级子分类。面对三级子类,甚至更深的层次的需求,只有通过wp_list_categories( $args )函数来实现。
> 不过遗憾的是,此函数不能自定义HTML结构。
> 本内容来自网络分享,原文链接:
> @link https://www.wpdaxue.com/wp_list_categories.html
> @link https://developer.wordpress.org/reference/functions/wp_list_categories/
:-: ![](https://img.kancloud.cn/81/55/815558a28baa4d020623eda793004cc7_259x362.png)
```
<?php
$args = array(
'taxonomy' => 'product',
'hide_empty' => 0,
'orderby' => 'id',
'order' => 'DESC',
'show_count' => 0,
'pad_counts' => 0,
'hierarchical' => 1,
'title_li' => '<h2>' . __( '产品中心', 'textdomain' ) . '</h2>',
);
?>
<ul>
<?php wp_list_categories( $args ); ?>
</ul>
```
## **$args参数及默认值:**
```
~~~
<?php
$args = array(
'show_option_all' => '',//是否列出分类链接
'orderby' => 'name',//按名称排列
'order' => 'ASC',//升、降序
'style' => 'list',//是否用列表(ul>li)
'show_count' => 0,//是否显示文章数量
'hide_empty' => 1,//是否显示无日志分类
'use_desc_for_title' => 1,//是否显示分类描述
'child_of' => 0,//是否限制子分类
'feed' => '',//是否显示rss
'feed_type' => '',//rss类型
'feed_image' => '',//是否显示rss图片
'exclude' => '',//排除分类的ID,多个用',(英文逗号)'分隔
'exclude_tree' => '',//排除分类树,即父分类及其下的子分类
'include' => '',//包括的分类
'hierarchical' => true,//是否将子、父分类分级
'title_li' => __( 'Categories' ),//列表标题的名称
'show_option_none' => __('No categories'),//无分类时显示的标题
'number' => null,//显示分类的数量
'echo' => 1,//是否显示,显示或者返回字符串
'depth' => 0,//层级限制
'current_category' => 0,//添加一个没有的分类
'pad_counts' => 0,//这个我也不明白
'taxonomy' => 'category',//使用的分类法
'walker' => null//用于显示的类
);
?>
~~~
```
## **参数说明:**
**show\_option\_all**
(字符串)非空值会导致如果样式设置为列表显示所有类别的链接。默认值是不显示链接到所有分类。
**orderby**
(字符串)以分类名称、分类ID或文章数量等为排列依据。有效值:
* ID
* name - 默认
* slug
* count
* term\_group
**order**
(字符串)分类的排序顺序(升序或降序)。缺省为升序。有效值:
* ASC – 升序(默认)
* DESC - 降序
**style**
(字符串)分类列表显示的样式。将分类列表的方式显示(使用标签分隔列表项)。默认设置为列表(无序列表)。有效值:
* list – 默认
* none
**show\_count**
(布尔)显示文章数量。默认情况下不显示文章数量。有效值:
* 1 (True)
* 0 (False) - 默认
**hide\_empty**
(布尔)隐藏没有文章的分类。 默认情况下隐藏没有文章的分类。有效值:
* 1 (True) – 默认
* 0 (False)
**use\_desc\_for\_title**
(布尔)是否将分类描述作为分类链接中的 title 属性,默认为 true。有效值:
* 1 (True) – 默认
* 0 (False)
**child\_of**
(整数)只显示此参数确定的分类的子分类。此参数没有默认值。
**feed**
(字符串)显示每个分类的 RSS-2 Feed链接到设置的feed文字。默认不显示feed文字和链接。
**feed\_type**
(字符串)
**feed\_image**
(字符串)设置一个图片到分类的 RSS-2 Feed链接。这个参数会覆盖上面的 feed 参数。此参数没有默认值。
**exclude**
(字符串)排除一个或多个分类。使用逗号分隔每个分类的ID。参数 include 必须为空。
**exclude\_tree**
(字符串)排除分类树。使用逗号分隔每个分类的ID。参数 include 必须为空。如果 hierarchical 参数 为 true ,请使用 exclude 参数替代 exclude\_tree 。
**include**
(字符串)只显示特定的分类,使用逗号分隔每个分类的ID。
**hierarchical**
(布尔)以层级来显示分类的子分类。默认为 true(在分类的下面显示它们的子分类)。有效值:
* 1 (True) – 默认
* 0 (False)
**title\_li**
(字符串)设置列表的标题。默认为“Categories”。如果存在这个参数,但是值为空,将无法显示列表。
**number**
(整数)设置显示的分类数量。定义SQL的限制值。默认为不限制。
**echo**
(布尔) 显示结果或保存在一个变量里。默认为 True 。有效值:
* 1 (True) – 默认
* 0 (False)
**depth**
(整数)显示分类的深度(即显示多少层的子分类)。默认值为 0(显示所有分类和子分类)。有效值:
* 0 - 所有分类和子分类(默认)
* \-1 - 所有类别显示在平面(不缩进)的形式(覆盖hierarchical)。
* 1 - 只显示顶级分类
* n - 根据n的具体数字来显示对应等级的分类。
**current\_category**
(整数)后跟分类ID号,对此ID分类加入名为current-cat的CSS控制,用户自定义current-cat样式后,可用于突出显示。
**pad\_counts**
(布尔)计算包括子分类的链接或文章数。如果 show\_counts 和 hierarchical 为 true ,这个参数就自动设置为 true 。有效值:
* 1 (true)
* 0 (false) - 默认
**taxonomy**
(字符串)要返回的分类法。该参数是在 3.0 中添加的。有效值:
* category - 默认
* taxonomy - 或任何其他已注册的分类法
**walker**
(对象)生成列表 Walker 类。有效值:
object - an instance of a class that extends either Walker\_Category or Walker 【不是很理解这个参数的作用,如果有朋友清楚,烦请告知,谢谢】