找我們做網站
↑
Woocommerce · WooCommerce 教學

WooCommerce 分類短代碼:product_categories 屬性與範例

WooCommerce 教學發布 2020.04.30更新 2026.10.02閱讀約 7 分鐘
WooCommerce 分類短代碼:product_categories 屬性與範例

重點整理
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。

在短代碼中加入 category 屬性,頁面只顯示該分類的商品
在短代碼中加入 category 屬性,頁面只顯示該分類的商品

常用的其他屬性:

屬性預設值說明
limit全部顯示幾個商品
columns4一列顯示幾個
orderbytitle排序依據,可用 date、id、menu_order、popularity、rand、rating
orderASCASC 由小到大(A→Z)、DESC 由大到小

範例:顯示「新品上市」分類中最新的 8 個商品,每列 4 個:[product_category category="new-arrivals" limit="8" columns="4" orderby="date" order="DESC"]

[product_categories]:顯示分類列表

只輸入 [product_categories],會列出所有有商品的分類,每個分類顯示分類圖片與名稱,點了會進入該分類頁。分類圖片在「商品 → 分類」編輯分類時設定。

只插入 product_categories 短代碼時,頁面列出所有商品分類
只插入 product_categories 短代碼時,頁面列出所有商品分類

ids:只顯示指定的分類

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

滑鼠移到分類名稱上,瀏覽器下方網址中的 tag_ID 就是分類 ID
滑鼠移到分類名稱上,瀏覽器下方網址中的 tag_ID 就是分類 ID

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

加入 ids 屬性後,頁面只顯示指定的商品分類
加入 ids 屬性後,頁面只顯示指定的商品分類

limit:顯示幾個分類

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

設定 limit 屬性限制顯示的分類數量
設定 limit 屬性限制顯示的分類數量

columns:一列顯示幾個

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

設定 columns 屬性改變每列顯示的分類數
設定 columns 屬性改變每列顯示的分類數

hide_empty:要不要顯示沒有商品的分類

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

設定 hide_empty 屬性控制是否顯示沒有商品的分類
設定 hide_empty 屬性控制是否顯示沒有商品的分類

parent:只顯示某個分類的子分類

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

商品分類列表中,男士夾克底下有夏季服裝子分類
商品分類列表中,男士夾克底下有夏季服裝子分類
加入 parent 屬性後,頁面只顯示男士夾克的子分類夏季服裝
加入 parent 屬性後,頁面只顯示男士夾克的子分類夏季服裝

orderby 與 order:排序

orderby 預設依分類名稱排序,也可以改成 id、slug(代稱)或 menu_order(在分類列表拖曳排定的順序)。用 ids 指定多個分類時,設 orderby="include" 就會照你填寫 ID 的順序排列。

order 決定方向:ASC 是由小到大(預設),DESC 是由大到小。中文分類名稱依名稱排序時,順序不一定符合直覺,建議改用 menu_order 或 include 自己控制順序。

未設定排序時的分類列表順序
未設定排序時的分類列表順序
設定 orderby 依 ID 排序並改變排序方向後的分類列表
設定 orderby 依 ID 排序並改變排序方向後的分類列表

綜合範例:首頁只顯示最上層分類、依後台排定順序、一列 3 個:[product_categories parent="0" orderby="menu_order" columns="3"]

短代碼要放在哪裡?常見的顯示問題

短代碼可以放在頁面、文章,也可以放在支援短代碼的小工具或頁面編輯器裡:

  • 區塊編輯器:按「+」新增區塊,搜尋「短代碼」,把短代碼貼進去後更新頁面。
  • Elementor:拖曳「短碼」(Shortcode)小工具到版面中,貼上短代碼即可。
  • 傳統編輯器:直接貼在內文中;建議切到「文字」分頁貼上,避免被加上多餘的格式。

如果頁面上直接顯示出短代碼的文字、沒有變成商品或分類,通常是下面幾個原因:

  1. 引號被換成全形或彎引號:從網頁或文件複製時," 可能變成「”」,屬性就會失效,請改成半形直引號重新輸入。
  2. 放進了「程式碼」或「段落」以外的區塊:放在程式碼區塊裡只會原樣顯示,要改用短代碼區塊。
  3. 代稱或 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 微調。

鵠學苑・鵠崙設計鵠崙設計 2014 年成立,專注 WordPress 網站開發,400 多個網站在我們自己的主機上運作。鵠學苑的文章由團隊實際操作後整理,工具與外掛的功能以撰文當時為準。
鵠崙設計

不想自己摸索,
就交給我們做。

外掛設定、主機效能、改版搬家,這裡寫的每一件事,都是我們每天在客戶網站上做的工作。留下需求,1 個工作天內回覆。