自定义文章类型单页中无法展示关联的自定义分类法内容求助
自定义文章类型单页中无法展示关联的自定义分类法内容求助
看起来你在ACF关联自定义分类法的显示上卡壳了,我来帮你捋捋可能的问题点和解决办法!
先确认ACF字段的基础设置
首先得排查最容易忽略的配置问题:
- 你的
evenement_locatie字段是不是设置成了Taxonomy类型?并且关联的分类法是不是你创建的locatie? - 字段的「返回格式」是不是选的Term Object?如果选的是Term ID,那你当前调用
$term->name的代码就会失效,得先把ID转成Term对象才行。
给现有代码加调试,定位问题
你第一个代码块逻辑是对的,但可以加个调试步骤看看变量情况,确认字段到底有没有获取到值:
<?php $term = get_field('evenement_locatie'); // 先打印变量内容,排查是否获取到数据 var_dump($term); if( $term && is_object($term) ): ?> <h2><?php echo esc_html( $term->name ); ?>test</h2> <p><?php echo esc_html( $term->description ); ?></p> <?php endif; ?>
通过var_dump你能清楚看到$term是空值、还是ID、还是完整的Term对象,方便快速定位问题。
跳过ACF,用WordPress原生函数直接获取
如果ACF字段的方式一直有问题,你可以试试直接从文章关联的分类法里取值(前提是locatie分类法已经关联到evenement自定义文章类型):
<?php // 获取当前evenement文章所属的locatie分类项 $terms = get_the_terms(get_the_ID(), 'locatie'); if ( $terms && !is_wp_error( $terms ) ) : foreach ( $terms as $term ) : ?> <h2><?php echo esc_html( $term->name ); ?></h2> <p><?php echo esc_html( $term->description ); ?></p> <?php endforeach; endif; ?>
这种方式绕开ACF,直接调用WordPress原生函数,能帮你确认是ACF字段的问题,还是分类法关联本身的问题。
其他排查点
- 字段名要严格匹配:确保你调用的
evenement_locatie和ACF后台设置的字段名完全一致,包括下划线、大小写都不能错; - 确认模板正确性:可以在模板里打印当前文章ID(
echo get_the_ID();),排查是不是用错了模板文件,导致没有加载到正确的文章数据。
备注:内容来源于stack exchange,提问作者Casper Boon
相关产品推荐
相关产品推荐

