使用 get_the_terms() 不会返回应用于 WooCommerce 产品的特定父类别的子术语



在无数次尝试和大约50篇文章之后,我得出结论,这是不可能的,除非有一个巫师愿意从他们的魔法书中撕下一页给我。

在产品页面上,我希望获取当前产品ID并将其传递给get_the_terms()函数,同时提供分类法'product_cat',最后指定父类别。

在我们传递的父类别中,只选择一个子类别。所以这应该只返回一个项。

我希望这样做:

$terms = get_the_terms( the_ID(), 'product_cat', array( 'parent' => 84 ) );
foreach ($terms as $term) {
$termID = $term->term_id;
$name   = $term->name;
$slug   = $term->slug;
echo $name;
}

然而,这返回了许多结果,我尝试了一堆其他类似的查询,但这很容易是最美丽的,如果有人能透露一些光,那将是伟大的!

简单地说,get_the_terms()不允许附加参数,而是使用wp_get_post_terms(),并且您应该使用get_the_ID()而不是the_ID(),如

$terms = wp_get_post_terms( get_the_id(), 'product_cat', array( 'parent' => 84 ) );

现在应该可以工作了。

最新更新