我有一个由WooCommerce支持的电子商务网站。我正在使用产品变体,以允许客户为他们的产品选择特定的配置。
我正在使用以下代码列出特定产品属性的字词名称:
$available_pa_colors = wc_get_product_terms( $product->get_id(), 'pa_colors' );
效果很好。
但是将默认的排序顺序从“自定义排序” 更改为“术语ID” 时,我什么也没得到(没有术语名称显示)。
我进行了一些研究,似乎wc_get_product_terms无法与排序配合使用。
如何使这些条款按Term ID进行排序?
对此,任何跟踪都会受到赞赏。
答案 0 :(得分:0)
函数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'
) );
经过测试可以正常工作。