WooCommerce 提供了強大的產品短代碼 [products],用于在商店頁面中靈活顯示產品。通過該短代碼,用戶可以根據產品 ID、SKU、類別、標簽、屬性等條件篩選和排序產品,并支持分頁、隨機排序等功能。文章詳細介紹了 [products] 短代碼的可用屬性及其使用場景,例如顯示特價商品、特色商品、最暢銷商品、特定類別或屬性的產品等。此外,還提供了按自定義元字段排序的代碼示例,幫助用戶進一步擴展功能。
雖然 WooCommerce 主要使用代碼塊為產品提供交互式和可自定義的顯示設置,但您仍然可以通過將舊版產品短代碼添加到短代碼塊中來在商店中使用它們。本文檔列出并解釋了可用的 WooCommerce 產品相關短代碼。
該短代碼是 WooCommerce 最強大的短代碼之一。它允許您按帖子 ID、庫存單位 (SKU)、類別和屬性顯示產品,并支持分頁、隨機排序和產品標簽。[products]
這消除了以前對多個短代碼的需求,包括:
[featured_products][sale_products][best_selling_products][recent_products][product_attribute][top_rated_products]
可用的商品屬性
以下屬性可用于短代碼。[products]
產品顯示屬性
這些屬性會改變產品在短代碼中的顯示、排序和排列方式:[products]
-
limit:要顯示的產品數量。在列出商品時默認為 (display all),在類別中默認為 (display all)。-1``-1 -
columns:要顯示的列數。默認為 。4 -
paginate:切換分頁。與 結合使用。默認為 ;設置為 以啟用分頁。limit``false``true -
orderby:按一個或多個選項對顯示的產品進行排序。可以通過添加兩個 slug 并在它們之間添加一個空格來傳遞多個選項。可用選項包括:
title:商品名稱。如果未使用其他屬性,則這是默認模式。orderbydate:產品的發布日期。id:產品的帖子 ID。menu_order:菜單順序(如果已設置)(較小的數字首先顯示)。popularity:購買次數。rand:在頁面加載時隨機訂購產品(可能不適用于使用緩存的網站,因為它可以保存特定順序)。rating:平均商品評分。
-
order:使用 中設置的方法,指示產品訂單是升序 () 還是降序 ()。默認為 。ASC``DESC``orderby``ASC -
skus:以逗號分隔的產品 SKU 列表。 -
category:以逗號分隔的類別 slug 列表。 -
tag:以逗號分隔的標簽 slug 列表。 -
class:添加一個 HTML 包裝器類,您可以使用自定義 CSS 來定位和修改該類。 -
on_sale:檢索特價商品;不得與 或 一起使用。best_selling``top_rated -
best_selling:檢索最暢銷的產品;不應與 或 一起使用。on_sale``top_rated -
top_rated檢索評分最高的產品;不應與 或 一起使用。on_sale``best_selling
如果您未添加該屬性,系統將按默認排序順序顯示商品 - 首先按菜單順序顯示商品,然后按商品名稱顯示商品。orderby
商品內容屬性
這些屬性決定了短代碼中顯示哪些產品:[products]
-
attribute:使用指定的屬性 slug 檢索產品。 -
terms:要與 一起使用的屬性詞的逗號分隔列表。attribute -
terms_operator:用于比較屬性詞的運算符。可用選項包括:
IN:顯示具有 chosen 屬性的產品。這是默認值。terms_operatorNOT IN:顯示不在所選屬性中的產品。AND:顯示所有選定屬性中的產品。
-
tag_operator:用于比較標簽。可用選項包括:
IN:顯示帶有所選標簽的產品;這是默認值。tag_operatorNOT IN:顯示不在所選標簽中的產品。AND:顯示所有選定標簽中的產品。
-
visibility:根據所選可見性顯示產品。可用選項包括:
visible: 商品在商店和搜索結果中可見。這是默認選項。visibilitycatalog:產品僅在商店中可見,而不在搜索結果中可見。search:產品僅在搜索結果中可見,而不在商店中可見。hidden:在商店和搜索中都隱藏的產品,只能通過直接 URL 訪問。featured: 標記為 Featured Products (特色商品) 的商品。
-
category:使用指定的類別 slug 檢索產品。 -
tag:使用指定的標簽 slug 檢索產品。 -
cat_operator:用于比較類別詞的運算符。可用選項包括:
IN:將顯示所選類別中的產品。這是默認值。cat_operatorNOT IN: 將顯示不屬于所選分類的商品。AND:將顯示屬于所有所選類別的產品。
ids:根據以逗號分隔的帖子 ID 列表顯示產品。skus: 根據逗號分隔的 SKU 列表顯示產品。
注意:如果商品應該顯示但未顯示,請確保在“目錄可見性”設置中未將其設置為“隱藏”。
要查找產品的 ID,請轉到 Products (產品) 屏幕并將鼠標懸停在產品上。Product ID (產品 ID) 如下所示。

特殊商品屬性
這些屬性不能與上面列出的商品內容屬性一起使用,因為它們可能會導致沖突并且不會顯示。您應該只使用以下特殊屬性之一。
best_selling:設置為 時顯示最暢銷的產品。trueon_sale:設置為 時顯示促銷產品。true
[product] 簡碼場景示例
下面您將找到一些如何使用短代碼和屬性 () 的示例。[product]``args
場景 1: 隨機銷售商品
以下是隨機顯示 4 個促銷產品的方法:
[products limit="4" columns="4" orderby="popularity" class="quick-sale" on_sale="true" ]
此短代碼明確表示四個產品,有四列(將是一行),顯示最受歡迎的特價商品。它還添加了 CSS 類,我們可以使用自定義 CSS 來定位和修改該類。quick-sale

場景 2: 特色商品
以下是顯示特色商品的方法,每行 2 件,最多包含 4 件商品:
[products limit="4" columns="2" visibility="featured" ]
此短代碼指定最多四個產品將加載到兩列中,并且必須有特色。我們沒有使用該屬性,因此短代碼將按默認排序(按菜單順序,然后按標題,默認列出 A 到 Z,未使用)。orderby``order

場景 3:最暢銷的商品
以下是在一行中顯示三個最暢銷商品的方法:
[products limit="3" columns="3" best_selling="true" ]

場景 4:最新產品
在此示例中,我們將首先顯示最新產品 — 一行中有四個產品。為此,我們將使用 (隨著新帖子的增加而遞增,并在創建產品頁面時生成)以及 order 和 command。由于您無法從前端看到 Post ID,因此 ID 號已疊加在圖像上。Post ID``orderby
[products limit="4" columns="4" orderby="id" order="DESC" visibility="visible"]

場景 5:特定類別
以下是展示連帽衫和襯衫的方法,但不包括配飾。我們將它配置為以兩行四行的形式顯示:
[products limit="8" columns="4" category="hoodies, tshirts" cat_operator="AND"]

或者,如果您只想顯示不屬于這些類別的產品,請將 更新為 。cat_operator``NOT IN
[products limit="8" columns="4" category="hoodies, tshirts" cat_operator="NOT IN"]
注意:即使限制設置為 ,也只有四個產品符合該條件,因此會顯示四個產品。8

場景 6:屬性顯示
每件衣服都有一個屬性——“春/夏”或“秋/冬”,具體取決于適當的季節——一些配飾兩者兼而有之,因為它們可以全年穿著。在此示例中,每行有三個產品,顯示所有 “Spring/Summer” 項目。屬性 slug 為 ;該屬性的術語為 和 。我們還將產品從最新到最舊排序。season``warm``cold
[products columns="3" attribute="season" terms="warm" orderby="date"]

或者,如果我們想顯示除暖天產品之外的所有內容,我們可以添加為 my :NOT IN``terms_operator
[products columns="3" attribute="season" terms="warm" terms_operator="NOT IN"]

注意:通過使用 ,我們排除了“春/夏”和“秋/冬”的產品。如果我們想展示所有適合寒冷天氣的裝備,包括這些共享配件,我們會將術語從 更改為 。NOT IN``warm``cold
場景 7: 僅顯示帶有“hoodie”標簽的商品
[products tag="hoodie"]

按自定義元字段對產品進行排序
注意: 我們無法根據我們的支持政策為自定義提供支持。如果您需要自定義代碼段或擴展其功能,我們建議您與 Woo Agency 合作伙伴合作或在 Codeable 上尋找 WooCommerce 開發人員。
使用簡碼時,您可以選擇按上面的預定義值訂購產品。您還可以使用下面的代碼按自定義元字段對產品進行排序(在此示例中,我們按價格訂購產品):[products]
add_filter( 'woocommerce_shortcode_products_query', 'woocommerce_shortcode_products_orderby' );
function woocommerce_shortcode_products_orderby( $args ) {
$standard_array = array('menu_order','title','date','rand','id');
if( isset( $args['orderby'] ) && !in_array( $args['orderby'], $standard_array ) ) {
$args['meta_key'] = $args['orderby'];
$args['orderby'] = 'meta_value_num';
}
return $args;
}
您需要將此代碼段放在 theme 文件夾的文件中,然后通過編輯 .functions.php``meta_key





