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
:商品名称。如果未使用其他属性,则这是默认模式。orderby
date
:产品的发布日期。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_operator
NOT IN
:显示不在所选属性中的产品。AND
:显示所有选定属性中的产品。
-
tag_operator
:用于比较标签。可用选项包括:
IN
:显示带有所选标签的产品;这是默认值。tag_operator
NOT IN
:显示不在所选标签中的产品。AND
:显示所有选定标签中的产品。
-
visibility
:根据所选可见性显示产品。可用选项包括:
visible
: 商品在商店和搜索结果中可见。这是默认选项。visibility
catalog
:产品仅在商店中可见,而不在搜索结果中可见。search
:产品仅在搜索结果中可见,而不在商店中可见。hidden
:在商店和搜索中都隐藏的产品,只能通过直接 URL 访问。featured
: 标记为 Featured Products (特色商品) 的商品。
-
category
:使用指定的类别 slug 检索产品。 -
tag
:使用指定的标签 slug 检索产品。 -
cat_operator
:用于比较类别词的运算符。可用选项包括:
IN
:将显示所选类别中的产品。这是默认值。cat_operator
NOT IN
: 将显示不属于所选分类的商品。AND
:将显示属于所有所选类别的产品。
ids
:根据以逗号分隔的帖子 ID 列表显示产品。skus
: 根据逗号分隔的 SKU 列表显示产品。
注意:如果商品应该显示但未显示,请确保在“目录可见性”设置中未将其设置为“隐藏”。
要查找产品的 ID,请转到 Products (产品) 屏幕并将鼠标悬停在产品上。Product ID (产品 ID) 如下所示。
特殊商品属性
这些属性不能与上面列出的商品内容属性一起使用,因为它们可能会导致冲突并且不会显示。您应该只使用以下特殊属性之一。
best_selling
:设置为 时显示最畅销的产品。true
on_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