显示应用于父类别子类别的Woocommerce的高级自定义字段

时间:2018-04-18 13:42:34

标签: php wordpress woocommerce advanced-custom-fields

我有一个高级自定义字段设置为在woocommerce子类别上显示,允许用户通过颜色选择器字段定义颜色。

此字段将该颜色应用于与该子类别相关的多个元素(样式化子类别缩略图,产品页面本身等)。

我目前正在根据ACF文档使用此代码来提取字段并将其显示在子类别页面上:

$term = get_queried_object();
$color = get_field('colour', $term); // Get ACF Field

这适用于子页面的父类别。我无法将字段调用为父类的子类别。我知道我需要使用get_terms()。我无法让它工作。

这是我发现的一些代码,我已将其添加到content-product_cat.php的循环中。然而,它只是打破了woocommerce循环。我需要对此代码做些什么才能让父类别页面显示每个子类别及其相关颜色字段?

// current term
$current_term = get_queried_object();

// child terms
// this returns an array of terms
$args = array(
  'taxonomy' => 'YOUR TAXONOMY HERE',
  'parent' => $current_term->term_id,
  // you may need other arguments depending on your needs
);
$child_terms = get_terms($args);

// you need to maybe loop through the child terms gotte
// to pick which one you want to use
// I'm assuming that you only want to use the first one

$child_term = false; // set it to false to begin with
                     // we'll use this later
if ($child_terms) {
  $child_term = $child_terms[0];
}

// make a decision
if ($child_term) {
  // get field value(s) from child term
  $color = get_field('color', $child_term);
} else {
  // get field value(s) from current term
  $color = get_field('color', $current_term);
}

// do something with the values
echo $color; 

0 个答案:

没有答案