如何将WordPress中ACF的True/False字段返回值改为Yes/No而非1/0
解决ACF True/False字段返回Yes/No的方法
这里给你三个实用的解决思路,按需选择:
方法1:模板里直接判断输出
这是最简单直接的方式,在调用字段的模板代码里,根据返回的1/0手动输出对应文本:
<?php // 替换成你的字段名,比如garage、balcony $has_garage = get_field('garage'); echo '车库:' . ($has_garage ? '是' : '否'); ?>
如果有多个这类字段,建议封装成小函数减少重复代码:
<?php function acf_bool_to_text($field_value, $true_text = '是', $false_text = '否') { return $field_value ? $true_text : $false_text; } // 使用示例 echo '车库:' . acf_bool_to_text(get_field('garage')); echo '阳台:' . acf_bool_to_text(get_field('balcony')); ?>
方法2:用ACF过滤器全局修改返回值
如果想让指定或所有True/False字段自动返回自定义文本,不用每次在模板里判断,直接在主题的functions.php里加这段代码:
<?php add_filter('acf/format_value', 'custom_acf_bool_value', 10, 3); function custom_acf_bool_value($value, $post_id, $field) { // 只针对True/False类型字段生效 if($field['type'] == 'true_false') { // 可选:只修改特定字段,比如garage和balcony // if(in_array($field['name'], ['garage', 'balcony'])) { // $value = $value ? '是' : '否'; // } // 全局修改所有True/False字段的返回值 $value = $value ? '是' : '否'; } return $value; } ?>
要是不同字段需要不同的显示文本,在判断里根据字段名设置对应的内容就行。
方法3:借助ACF字段的显示选项管理文本
虽然True/False字段没有直接设置返回值的选项,但可以在字段编辑页的「显示选项」里设置“开启文本”和“关闭文本”,然后在模板里调用这些预设好的文本:
<?php $field = get_field_object('garage'); echo $field['label'] . ':' . ($field['value'] ? $field['choices']['1'] : $field['choices']['0']); ?>
这种方式的好处是后续要修改文本时,直接在ACF后台改就行,不用碰代码。
内容的提问来源于stack exchange,提问作者Mego
相关产品推荐
相关产品推荐

