如何在author.php页面正常显示分类下的ACF自定义字段
问题原因
你给分类添加的自定义字段是绑定在分类法术语对象上的,get_queried_object() 函数在不同类型的存档页返回的对象类型完全不同:
- 分类存档页:返回对应分类的术语对象,所以你原来的代码可以正常读取绑定在分类上的字段值
- 作者存档页:返回的是当前页面对应作者的WP_User对象,和分类没有关联,自然无法读取到分类的自定义字段值。就算删除author.php回退到用archive.php模板也不会生效,因为模板只是渲染层,当前页面的查询对象已经是用户而非分类,和用什么模板无关。
解决方法
根据你的使用场景选对应的代码即可:
场景1:作者页循环内每篇文章后展示该文章所属分类的字段值
把以下代码加到你给出的循环代码之后(也就是the_post()之后的循环体内)即可:
<?php // 获取当前文章关联的第一个分类,可根据需求调整为取指定分类法的分类 $post_categories = get_the_category(); if (!empty($post_categories)) { $target_category = $post_categories[0]; echo get_field('students_no_class', $target_category); } ?>
场景2:作者页全局展示固定分类的字段值
如果你要在作者页的任意位置展示某个固定分类的字段值,直接传入分类ID参数即可:
<?php // 把下方的12替换为你目标分类的实际ID echo get_field('students_no_class', 'category_12'); ?>
内容的提问来源于stack exchange,提问作者James Xu
相关产品推荐
相关产品推荐

