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

标签 php wordpress sorting woocommerce taxonomy-terms

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

我使用以下代码列出特定产品属性的术语名称:

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

而且效果很好。

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

我做了一些研究,似乎 wc_get_product_terms 不适用于排序。
我怎样才能使这个术语按术语 ID 排序?

我们将不胜感激。

最佳答案

函数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'
) );

经过测试并有效。

关于php - 使用 WooCommerce wc_get_product_terms 函数对产品属性术语进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55562382/

相关文章:

php - 使用 zend gdata 插件上传文档

php - 编写一个类以在 WordPress 中传递 add_action 参数

Java根据第一个数组的索引对第二个数组进行排序

php - 在不使用 ziparchive 的情况下在 php 中创建一个 zip 文件

javascript - 如何将javascript排入wordpress子主题

css - 溢出 : visible not working

php - wordpress menu_order 不起作用

c# - 使用 Entity Framework 的规范模式(按属性排序)

c# - native C# 支持检查 IEnumerable 是否已排序?

php - 如何通过查询将表单中的多个选中选项匹配到数据库中?