显示自定义分类中的ACF字段并在单个模板上显示

时间:2020-07-10 作者:Shaun Taylor

我有一个名为products的自定义帖子类型,我附加了一个名为Product Categories的自定义分类法。

在每个产品类别上,我都使用了高级自定义字段来添加诸如产品类别颜色、徽标等字段。

最初,我试图将产品类别颜色显示为属于该特定产品类别的所有产品的背景色。

我尝试使用与在实际产品类别页面(taxonomy-Product\\u Category.php)上显示颜色相同的方法,将以下内容添加到页面顶部:

// get the current taxonomy term
$term = get_queried_object();

// vars
$category_colour_primary = get_field(\'category_colour_primary\', $term); 
然后在后面引用它,如下所示:

<div class="container-flex" style="background-color:<?php echo $category_colour_secondary; ?>;">
</div>
这在每个产品类别页面上都非常有效,但在单页面模板(single products.php)上似乎不起作用。

我觉得我需要知道名字(或术语?!)然后像往常一样显示它们。。。

我已经走到了一个死胡同,我不确定我下一步需要尝试什么。。。

有人能给我指出正确的方向吗?我觉得我已经试过无数次了,但我的头脑还没有完全清醒过来。感谢您的关注!

2 个回复
SO网友:Daniel Morell

我想试试这样的。。。

// Assume there is only one category.
$product_category = get_the_terms($post, \'product-category\')[0];

$cat_fields = get_fields("term_$product_category");

$color = $cat_fields[\'category_colour_primary\'];
你也可以这样做。。。

// Assume there is only one category.
$product_category = get_the_terms($post, \'product-category\')[0];

$color = get_field(\'category_colour_primary\', "term_$product_category");

SO网友:Shaun Taylor

设法使其使用以下代码:

<?php
$terms = wp_get_object_terms($post->ID, \'product_category\');
if(!empty($terms)){
  foreach($terms as $term){
    $exampleName = $term->name;
    $exampleSlugs[] = $term->slug;

    $category_colour_primary = get_field(\'category_colour_primary\', $term);
    $category_colour_secondary = get_field(\'category_colour_secondary\', $term);

  }
}
?>

相关推荐

在WordPress编辑器中使用html定制页面,还是直接在php模板文件中编写?

我正在从以前构建的html站点构建一个自定义主题。我使用高级自定义字段设置了一些页面,以便客户端可以更改这些页面的部分内容。我使用page-{slug}设置它们。php。我还有一些根本不会改变的页面,也使用了page-{slug}来实现这些。。。。。将所有代码和内容都放在php模板中可以吗?因为如果有任何变化,我将是处理它们的人。此外,此主题永远不会被重新分发,因此不需要处理其他主题。谢谢你的帮助。。。