# 調用指定分類的子分類(函數法)
> 前面介紹的靈活調用子分類雖然可以自由編寫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/
:-: 
```
<?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 【不是很理解這個參數的作用,如果有朋友清楚,煩請告知,謝謝】