跳到正文
原文
athemes.com新闻· Muhammad Umair·· 29 天前编辑评分39

2026 年仍有价值的 WooCommerce 短代码:现状与区块替代方案

WooCommerce shortcodes: which ones still matter in 2026

编辑导读

WooCommerce 产品类短代码仍适用于文章和页面,但新商店默认以 Cart block 和 Checkout block 取代购物车与结账短代码。原有短代码未被移除,仍可继续运行;截至 20 September 2026,只有这两个短代码被区块替代,另有 4 个短代码尚无区块对应方案。

你在教程中看到了一段 WooCommerce 短代码,将其粘贴到页面后,现在 wonders 自己是否刚刚构建在一条 WordPress 正悄然背离的技术路径上。这个问题很合理,而且大多数短代码指南都没有回答它。

它们没有回答,是因为往往把每个 WooCommerce 短代码都列成仿佛它们具有相同的地位,但这些短代码的状态实际上确实不同。有些仍然是完成某项任务最快的工具,而且永远都会是;有些依然可用,但已有区块在新构建中取代了它们;还有几个则完全没有替代方案。这一区别很重要,因为购物车和结账短代码正是人们最常复制的,而它们也恰恰是 WooCommerce 已经放弃使用的。

本指南首先按状态对这些短代码进行分类,并依据 WooCommerce 官方文档于 20 September 2026 进行了核实,随后再介绍你实际会使用的那些。

目录
  1. 2026 年仍值得关注的 WooCommerce 短代码
  2. 区块还是短代码:如何选择
  3. 值得了解的产品短代码
  4. 页面短代码及其替代方案
  5. 为什么你复制的短代码停止工作
  6. 关于 WooCommerce 短代码的常见问题
  7. 关于 WooCommerce 短代码的最后 thoughts

简而言之,产品短代码仍然适用,值得学习;而购物车和结账短代码已有对应的区块,WooCommerce 目前在新商店中默认使用这些区块。整个过程中并未从 WooCommerce 移除任何功能,因此你已经基于短代码构建的每个页面仍可继续运行。

以下是每个 WooCommerce 短代码的当前状态及其对应的区块,内容取自 WooCommerce 官方短代码文档。

短代码作用区块替代方案状态
[products]根据参数及属性显示产品Product Collection 区块及其他当前适用,仍是文章内最快的实现方式
[product_page]按 ID 或 SKU 显示完整的单个产品页面站点编辑器中的自定义产品页面模板当前适用
[product_category]显示某个分类中的产品及属性Product Collection 区块当前适用
[product_categories]显示产品分类及属性暂无当前适用,且是唯一选择
[add_to_cart]显示产品的加入购物车按钮可在单个产品页面模板中使用当前适用
[add_to_cart_url]返回产品的加入购物车 URL无当前适用,且是唯一选择
[shop_messages]在非 WooCommerce 页面上显示商店通知Store Notices 区块当前适用
[woocommerce_cart]显示购物车页面Cart 区块旧版,仍可使用,新商店已由区块取代
[woocommerce_checkout]显示结账页面Checkout 区块旧版,仍可使用,新商店已由区块取代
[woocommerce_my_account]显示账户页面暂无当前适用,且是唯一选择
[woocommerce_order_tracking]显示订单跟踪表单无当前适用,且是唯一选择

请仔细阅读最后一栏,因为这是其他指南都没有单独区分出来的部分。其中四个短代码完全没有对应的区块,因此它们并非旧版,而是会长期保留。真正被取代的只有两个,而且这两个目前仍然可以使用。

区块还是短代码:如何选择

规则简单到很容易记住。新商店使用区块;已在使用短代码的现有商店,在没有理由改变之前不要动它。如果要把产品放入文章或着陆页面,短代码仍然比区块更快。

最后一种情况正是人们容易低估的。短代码是你可以输入、套用或通过程序生成的一行代码。相应的区块需要点击数次,而且无法粘贴到文本字段中;当你构建的是三十个分类页面而非一个页面时,这一点尤为重要。

购物车和结账功能值得比其他部分投入更多思考,因为新功能会率先落到区块版本中。快捷支付区域和较新的表单控件都会最先出现在那里,因此,基于短代码版本构建的商店会逐渐在功能方面落后,而不会直接失效。如果你有意反向操作,想恢复经典的短代码体验,我们关于将购物车和结账区块切换回经典短代码的文档介绍了具体步骤。

你的主题也是这项决策的一部分,在做任何更改之前都值得检查一下。区块主题需要使用区块模板,而经典主题通常更适合短代码页面。Botiga 同时支持这两种方式;我们 fastest WooCommerce 主题对比文章介绍了其他选项的处理方式。

值得了解的产品短代码

这些是你会经常使用的,因为它们可以把产品放入普通文章和页面中,而商店模板本身无法做到这一点。

显示产品网格

[products] 是这一组短代码中的主力,单独使用时只需列出你的产品。真正的控制功能都集中在它的属性中。

值得记住的属性包括:limit,用于设置显示多少个产品;columns,用于设置网格宽度;orderby,用于设置排序字段;order,用于设置排序方向;以及 paginate,用于在显示长列表时开启分页。orderby 属性支持 title、date、id、menu_order、popularity、rand 和 rating,因此你通常需要的排序方式基本都已内置。

由十二个最新产品组成的四列网格看起来如下。

[products limit="12" columns="4" orderby="date" order="DESC"]

你也可以使用 ids 或 skus 精确指定产品,两者都接受以逗号分隔的列表;如果想让某个网格与其他网格样式不同,还可以添加 class 属性。

按分类、特卖或评分筛选

同一款短代码既可以筛选,也可以列出内容,其中筛选属性最值得深入了解。category 和 tag 都接受以逗号分隔的 slug,因此无需改动模板,一行代码就能显示某个分类中的所有产品。

[products category="hoodies,t-shirts" limit="8" columns="4"]

有三个属性可以单独用作筛选条件。on_sale 会调出当前正在特卖的产品,best_selling 会按购买数量调出产品,top_rated 会按平均评分调出产品。WooCommerce 的文档指出,这三个属性不应相互组合,因此每个短代码选择一个即可。

[product_category] 的作用相同,但范围限定在单个分类中。如果你只需要这种效果,就值得使用它,因为之后编辑页面的人会更清楚你的意图。

单个产品,以及简洁的加入购物车按钮

[product_page id="99"] 可以在任意文章或页面中呈现完整的产品页面,包括图片和加入购物车按钮。它适合用于围绕单个产品构建的落地页;我们精选的最佳单一产品 WordPress 主题汇总文章介绍了同一种构建方式在主题方面的选择。

如果你只想获取按钮,[add_to_cart id="99"]会返回价格和按钮,而不会返回产品页面的其他内容。[add_to_cart_url id="99"]更进一步,只返回 URL;当按钮是你自行设计的设计元素,或位于电子邮件中的链接时,这正是你所需要的。

页面短代码及其替代方案

这四个页面构成了商店的功能页面,WooCommerce 会在安装时自动为你创建它们。它会在自己的设置中记录每个页面的用途,因此通常在你还没来得及考虑它们之前,这些页面就已经准备就绪。

WooCommerce Settings: Store Address form with fields for address line 1, address line 2, city, country/state, and postcode/ZIP.

[woocommerce_cart]和[woocommerce_checkout]是背后确有区块替代方案的两个短代码。现在,新安装的 WooCommerce 使用 Cart 区块和 Checkout 区块,新的结账功能也会率先在这些区块中推出。无论如何,你的短代码页面仍可继续使用,因此不存在风险。这些区块提供的功能足够丰富,最终值得围绕迁移进行规划。

在撰写本文时,[woocommerce_my_account]和[woocommerce_order_tracking]尚无对应的区块版本,因此它们距离成为旧代码还有很长的路要走。WooCommerce 自己的文档将账户页面列为“尚无”,将订单跟踪表单列为“无”,因此这些短代码是构建这些页面的唯一方式。

[shop_messages]是个异类,也是大多数人从未使用过、但最有用的短代码。WooCommerce 通知——例如提示商品已加入购物车或优惠券已应用的那些通知——默认只在 WooCommerce 页面上呈现。将[shop_messages]放入带“加入购物车”按钮的自定义着陆页后,通知也会开始在那里显示。

复制的短代码为何停止工作

几乎所有失效的 WooCommerce 短代码都可归因于四种原因,而且很容易区分。

  • 它来自旧教程:WooCommerce 已将若干较旧的短代码(如[featured_products]和[sale_products])替换为[products]上的属性,因此旧博客文章中的代码片段可能仍在调用已经不存在的内容
  • 属性名称已更改:limit和columns是当前的属性名称,而旧指南有时会使用 WooCommerce 已不再接受的属性名称
  • 你的商店已迁移到购物车和结账区块:如果结账页面现在包含 Checkout 区块,将[woocommerce_checkout]添加到第二个页面时,其行为将不会像教程预期的那样
  • 短代码放错了字段类型:短代码要在文章正文中运行,因此如果粘贴到小组件、主题选项或不处理短代码的区块中,就只会以文本形式原样显示

当短代码在前端显示为纯文本时,最后一种原因几乎总是答案。将它移入文章正文中的 Shortcode 区块,它就会正常呈现。如果它能够呈现却未返回任何内容,那么问题出在查询而非短代码本身,因此请检查分类别名是否拼写正确,以及你预期的商品是否确实已发布并有库存。

如果某个短代码确实无法完成任务,通常插件可以做到;我们关于最佳 WooCommerce 插件的指南介绍了那些值得安装的插件。

关于 WooCommerce 短代码的常见问题

关于短代码的问题不断出现,尤其是在区块加入之后。以下是对最常见问题的直接解答。

什么是 WooCommerce 短代码?

WooCommerce 短代码是置于方括号中的简短文本,可在任何文章或页面中呈现商店内容。[products]会输出商品网格,[woocommerce_cart]会输出购物车,并且每个短代码都接受用于控制显示内容的属性。

WooCommerce 短代码是否已弃用?

其中大多数并未在任何意义上弃用,也没有一个被移除。只有购物车和结账短代码有了区块替代方案,而包括账户页面和订单跟踪在内的四个短代码完全没有对应的区块,因此它们仍是唯一的选择。没有任何内容被移除,所以现有页面仍可正常运作。

如何在 WooCommerce 页面中添加产品?

向页面添加“短代码”区块并输入 [products limit="8" columns="4"],根据你的布局调整数字。添加 category 属性可将其限定为一个类别;如果你更喜欢可视化配置,也可以使用“产品集”区块。

WooCommerce 区块与短代码有什么区别?

区块在编辑器中以可视化方式配置,并且会优先获得新的 WooCommerce 功能;短代码则以文本形式输入,可以通过程序生成或添加到模板中。对于购物车和结账,区块现在已成为默认选项;如果要在文章中放入产品,短代码通常更快捷。

为什么我的 WooCommerce 短代码停止工作了?

常见原因是短代码位于不会处理短代码的位置,例如小工具或主题选项字段中,因此会被当作纯文本输出。其他常见原因包括使用了过时教程中的属性名称,或者某个短代码已被 WooCommerce 合并为 [products] 中的一个属性。

关于 WooCommerce 短代码的最后几点想法

短代码并未走向淘汰,那些暗示相反的指南只是将购物车和结账的情况泛化到了所有功能。其中四个短代码没有对应的区块替代方案,产品短代码仍是在文章中放入产品的最快方式,而且所有短代码依然都能运行。

这条判断规则值得保存在你以后还会看到的地方,因为它本身就能解决大多数此类问题。新建购物车和结账页面时使用区块;现有的短代码页面先保持不变,直到你需要区块所提供的功能;每当你想在商店模板未覆盖的位置添加商店内容时,就使用 [products]。

你最常使用哪个 WooCommerce 短代码?你是否希望其中有某个短代码能推出区块版本?请在下方评论区告诉我。

来源:athemes.com新闻 · https://athemes.com/tutorials/woocommerce-shortcodes/?utm_source=rss&utm_medium=rss&utm_campaign=woocommerce-shortcodes

部分链接为推广/关联链接。