使用WooCommerce wc_get_product_terms函数对产品属性术语进行排序

时间:2019-04-07 18:35:05

标签: php wordpress sorting woocommerce taxonomy-terms

我有一个由WooCommerce支持的电子商务网站。我正在使用产品变体,以允许客户为他们的产品选择特定的配置。

我正在使用以下代码列出特定产品属性的字词名称:

$available_pa_colors = wc_get_product_terms( $product->get_id(), 'pa_colors' );    

效果很好。

但是将默认的排序顺序从“自定义排序” 更改为“术语ID” 时,我什么也没得到(没有术语名称显示)。

我进行了一些研究,似乎wc_get_product_terms无法与排序配合使用。
如何使这些条款按Term ID进行排序?

对此,任何跟踪都会受到赞赏。

1 个答案:

答案 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'
) );

经过测试可以正常工作。