如何将ACF数字字段千位分隔符从逗号改为空格格式化输出
修改ACF数字字段千位分隔符为空格的实现方法
你现有代码里调用的number_format()函数只传入了待格式化的数字这一个参数,PHP会默认使用英文逗号作为千位分隔符、英文点作为小数点,所以输出的是20,000格式。
直接把number_format()的参数补全,手动指定千位分隔符为空格即可实现需求,修改后的完整代码如下:
add_filter('acf/format_value/type=number', 'fix_number', 20, 3); function fix_number($value, $post_id, $field) { // 无小数位场景使用,输出效果如20 000 $value = number_format($value, 0, '.', ' '); return $value; }
参数说明
number_format()的四个参数按顺序作用如下:
- 第一个参数:传入需要格式化的原始数字值,也就是代码里的
$value - 第二个参数:指定格式化后保留的小数位数,填
0就是不保留小数;如果需要保留2位小数,直接把这个值改成2即可 - 第三个参数:指定小数点使用的符号,示例里用的是默认的英文点
.,如果需要用逗号等其他符号当小数点,直接替换引号内的内容即可 - 第四个参数:指定千位分隔符使用的符号,这里传入空格
' ',就会输出空格分隔千位的数字格式
如果你的数字字段需要保留小数,比如要显示
20 000.50,只需要把对应行改成$value = number_format($value, 2, '.', ' ');即可。
内容的提问来源于stack exchange,提问作者Tanya Nami
相关产品推荐
相关产品推荐

