
重點整理
WooCommerce 有兩個跟分類有關的短代碼:[product_category category="分類代稱"] 顯示某個分類底下的「商品」;[product_categories] 顯示「分類本身」的列表(分類圖片+名稱)。後者可以用 ids 指定分類、parent 只顯示某分類的子分類、limit 限制數量、columns 設欄數(預設 4)、hide_empty 控制空分類(預設 1 隱藏)、orderby 與 order 排序(預設依名稱、ASC 由小到大)。WooCommerce 官方現在建議顯示分類商品改用「商品系列」(Product Collection)區塊,但分類列表目前還沒有對應區塊,短代碼仍是主要做法。
商品一多,顧客很難在一長串商品中找到想要的東西。先在首頁或「全部商品」頁放一個分類入口,或在活動頁只列出某個分類的商品,是很常見的需求。WooCommerce 內建的分類短代碼就能做到,不用另外裝外掛。這篇說明這兩個短代碼的用法、每個屬性的意思與範例。商品列表本身的短代碼 [products],可以參考 WooCommerce 商品短代碼教學。
[product_category]:顯示某個分類底下的商品
步驟一:找到分類的代稱
到「商品 → 分類」,在分類列表的「代稱」欄就能看到每個分類的代稱(網址中使用的英文名稱);也可以滑鼠移到分類上點「快速編輯」複製。

步驟二:把代稱填進短代碼
在頁面中插入「短代碼」區塊(或 Elementor 的短碼小工具),輸入:
[product_category category="代稱"]
就會列出該分類下的所有商品。category 是必填屬性,可以填分類的代稱、名稱或 ID。

常用的其他屬性:
| 屬性 | 預設值 | 說明 |
|---|---|---|
| limit | 全部 | 顯示幾個商品 |
| columns | 4 | 一列顯示幾個 |
| orderby | title | 排序依據,可用 date、id、menu_order、popularity、rand、rating |
| order | ASC | ASC 由小到大(A→Z)、DESC 由大到小 |
範例:顯示「新品上市」分類中最新的 8 個商品,每列 4 個:[product_category category="new-arrivals" limit="8" columns="4" orderby="date" order="DESC"]
[product_categories]:顯示分類列表
只輸入 [product_categories],會列出所有有商品的分類,每個分類顯示分類圖片與名稱,點了會進入該分類頁。分類圖片在「商品 → 分類」編輯分類時設定。

ids:只顯示指定的分類
先找到分類的 ID:在分類列表把滑鼠移到分類名稱上,瀏覽器左下角顯示的網址中,tag_ID= 後面的數字就是 ID;點進編輯畫面時,網址列也看得到。

把 ID 填進 ids 屬性,多個分類用逗號隔開,例如 [product_categories ids="11,22,33"]。

limit:顯示幾個分類
輸入數字限制分類數量,例如 [product_categories limit="4"];填 0 或不寫就是全部。

columns:一列顯示幾個
預設一列 4 個,例如 [product_categories columns="3"] 改成一列 3 個。實際在手機上的欄數,仍會依佈景主題的響應式設定調整。

hide_empty:要不要顯示沒有商品的分類
預設值是 1,會隱藏沒有任何商品的分類;設成 0 就連空分類一起顯示,例如 [product_categories hide_empty="0"]。

parent:只顯示某個分類的子分類
填入父分類的 ID,就只顯示它底下一層的子分類。例如「男士夾克」底下有「夏季服裝」子分類,填入男士夾克的 ID 後就只會出現夏季服裝。parent=”0″ 則只顯示最上層的分類,適合做首頁的分類入口。


orderby 與 order:排序
orderby 預設依分類名稱排序,也可以改成 id、slug(代稱)或 menu_order(在分類列表拖曳排定的順序)。用 ids 指定多個分類時,設 orderby="include" 就會照你填寫 ID 的順序排列。
order 決定方向:ASC 是由小到大(預設),DESC 是由大到小。中文分類名稱依名稱排序時,順序不一定符合直覺,建議改用 menu_order 或 include 自己控制順序。


綜合範例:首頁只顯示最上層分類、依後台排定順序、一列 3 個:[product_categories parent="0" orderby="menu_order" columns="3"]
短代碼要放在哪裡?常見的顯示問題
短代碼可以放在頁面、文章,也可以放在支援短代碼的小工具或頁面編輯器裡:
- 區塊編輯器:按「+」新增區塊,搜尋「短代碼」,把短代碼貼進去後更新頁面。
- Elementor:拖曳「短碼」(Shortcode)小工具到版面中,貼上短代碼即可。
- 傳統編輯器:直接貼在內文中;建議切到「文字」分頁貼上,避免被加上多餘的格式。
如果頁面上直接顯示出短代碼的文字、沒有變成商品或分類,通常是下面幾個原因:
- 引號被換成全形或彎引號:從網頁或文件複製時,
"可能變成「”」,屬性就會失效,請改成半形直引號重新輸入。 - 放進了「程式碼」或「段落」以外的區塊:放在程式碼區塊裡只會原樣顯示,要改用短代碼區塊。
- 代稱或 ID 打錯:分類代稱要和「商品 → 分類」列表中的一致,否則會顯示空白。
常見問題
product_category 和 product_categories 差在哪?
product_category(單數)列出某個分類裡的「商品」;product_categories(複數)列出「分類」本身,點了才進入分類頁。
WooCommerce 短代碼還能用嗎?
可以,WooCommerce 仍支援這些短代碼。官方建議顯示商品改用「商品系列」(Product Collection)等區塊,功能更有彈性;但分類列表目前沒有對應的區塊,[product_categories] 仍是常用做法。
短代碼顯示的分類沒有圖片怎麼辦?
到「商品 → 分類」編輯該分類,在「縮圖」欄位上傳圖片即可;沒設定時會顯示預留位置圖片。
結語
要列出某分類的商品用 [product_category],要做分類入口用 [product_categories],再用 ids、parent、limit、columns、orderby 組合出需要的樣式。建議先建一個不公開的測試頁面試各種屬性,確認效果再放到正式頁面;樣式不夠滿意時,再用佈景主題設定或 CSS 微調。
