使用 WooCommerce wc_get_product_terms 函数对产品属性术语进行排序
Posted
技术标签:
【中文标题】使用 WooCommerce wc_get_product_terms 函数对产品属性术语进行排序【英文标题】:Sort product attribute terms using WooCommerce wc_get_product_terms function 【发布时间】:2019-08-28 22:49:16 【问题描述】:我有一个由 WooCommerce 提供支持的电子商务网站。我正在使用产品变体来让我的客户为他们的产品选择特定的配置。
我正在使用以下代码列出特定产品属性的术语名称:
$available_pa_colors = wc_get_product_terms( $product->get_id(), 'pa_colors' );
而且效果很好。
但是将默认排序顺序从“自定义排序”更改为“术语 ID”时,我什么也得不到(没有显示术语名称)。
我做了一些研究,似乎 wc_get_product_terms 不适用于排序。如何使这些术语按术语 ID 排序?
对此的任何跟踪将不胜感激。
【问题讨论】:
【参考方案1】:函数wc_get_product_terms()
使用_wc_get_cached_product_terms()
优先考虑存储的缓存数据,而不是使用其中包含的 WordPress wp_get_post_terms()
。
这就是为什么你不能对任何东西进行排序。
因此,您应该直接使用wp_get_post_terms()
,它允许像这样进行排序:
$available_pa_colors = wp_get_post_terms( $product->get_id(), 'pa_colors', array(
'orderby' => 'term_id', 'order' => 'ASC', 'fields' => 'names'
) );
经过测试并且有效。
【讨论】:
感谢@LoicTheAztec!只需将 wc_get_product_terms() 重命名为 wp_get_post_terms() ,网站上的属性排序就从默认的名称更改为产品卡变体中设置的排序。以上是关于使用 WooCommerce wc_get_product_terms 函数对产品属性术语进行排序的主要内容,如果未能解决你的问题,请参考以下文章