我有一个由WooCommerce提供支持的eCommerce网站。我正在使用产品变体来允许我的客户为他们的产品选择特定的配置。
我使用以下代码列出特定产品属性的术语名称:
$available_pa_colors = wc_get_product_terms( $product->get_id(), 'pa_colors' ); 它工作得很好。
但是,当将默认排序顺序从“自定义排序”更改为“术语ID"时,我什么也得不到(没有显示术语名称)。
我做了一些研究,似乎wc_get_product_terms不能用于排序。
如何才能使此术语按术语ID排序?
任何关于这方面的轨道将是感激的。
发布于 2019-04-08 05:47:29
函数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'
) );经过测试,效果良好。
https://stackoverflow.com/questions/55562382
复制相似问题