如何显示ACF Post Object关联文章的术语名称?
获取ACF关联文章的术语名称
嘿,这个需求其实很简单,你已经拿到了关联文章的ID,接下来只需要借助WordPress内置的函数就能轻松拿到对应的术语名称,我给你分情况拆解:
基础实现步骤
首先,先把关联文章的ID存成变量,让代码更清晰易读:
// 获取关联文章的ID $game_post_id = get_field('which_game')->ID;
接下来,使用get_the_terms()函数获取该文章对应的术语——这里要注意,你需要明确术语所属的分类法slug(比如默认文章分类是category,如果是自定义分类法,就换成你创建时设置的slug,比如game_genre)。
情况1:只显示第一个术语名称
如果关联文章只属于一个术语,或者你只需要展示第一个术语,代码可以这么写:
// 获取指定分类法下的术语,记得替换成你的分类法slug $game_terms = get_the_terms($game_post_id, 'category'); // 检查是否有术语且无错误 if ($game_terms && !is_wp_error($game_terms)) { // 提取第一个术语的名称并输出 $first_term_name = $game_terms[0]->name; echo $first_term_name; }
情况2:显示所有关联的术语名称(带分隔符)
如果文章属于多个术语,想要全部展示出来(比如用逗号分隔),可以这么处理:
$game_terms = get_the_terms($game_post_id, 'category'); if ($game_terms && !is_wp_error($game_terms)) { // 把所有术语名称提取到数组里 $term_names = wp_list_pluck($game_terms, 'name'); // 用逗号分隔输出所有术语 echo implode(', ', $term_names); }
关键注意点
- 一定要替换代码里的
'category'为你实际使用的分类法slug,不然会拿不到正确的术语。 - 加上错误判断(
!is_wp_error($game_terms))很重要,能避免因为分类法不存在或者文章没有关联术语导致的报错。
内容的提问来源于stack exchange,提问作者Maanstraat
相关产品推荐
相关产品推荐

