如何通过ID获取自定义分类法pwb-brand中的术语名称?
问题分析与解决方法
你的代码存在两个核心问题:
- ACF字段调用错误:
the_sub_field('varumarke')会直接输出字段值,而get_term_by()需要传入的是变量值,应该用get_sub_field()来获取值(不会直接输出)。 - 术语对象处理错误:
get_term_by()返回的是单个WP_Term对象,不是数组,不需要用foreach循环遍历。
修正后的代码如下:
<?php // 获取ACF子字段的值(不直接输出) $brand_id = get_sub_field('varumarke'); // 通过ID获取术语对象 $brand = get_term_by('id', $brand_id, 'pwb-brand'); // 检查术语是否有效,避免报错 if ($brand && !is_wp_error($brand)) { echo '<h2>' . $brand->name . '</h2>'; } ?>
额外说明
- 加入
!is_wp_error($brand)判断是为了防止传入无效ID时出现报错,提升代码健壮性。 - 确保
pwb-brand是正确的自定义分类法slug,和你注册的分类法保持一致。
内容的提问来源于stack exchange,提问作者Edvin Uddfalk
相关产品推荐
相关产品推荐

