1

我正在使用高级自定义字段 wordpress 插件,并且正在输出以下字段之一的值: the_field('Price');它给出了一个数字。

我想将此数字格式化为带逗号的英镑。

我在输出它时遇到了一些问题。这似乎与首先输出的函数值或数字格式函数有关。

$money = the_field('Price');
echo  '£' . number_format($money,0, '.', '');

这不起作用并输出例如300000£0

提前致谢。

4

3 回答 3

2

看起来the_field()没有返回任何东西,而是回声。

您可以编写自己的自定义函数:

function my_the_field($field, $post_id = false) {
    $value = get_field($field_name, $post_id);
    if (is_array($value)) {
        $value = @implode(', ', $value);
    }
    return $value;
}

并用它代替the_field()

ob_start()或使用and捕获输出ob_get_clean()并将其传递给number_format()

于 2012-06-25T10:40:40.540 回答
1

感谢您的出色回答:

第二个选项有效:

ob_start();

        the_field('Price');

        $out = ob_get_clean();
        $out = strtolower($out);

       echo '£' .  number_format($out);

       // var_dump($out);
于 2012-06-25T10:57:18.973 回答
0

@Andrew Welch 您的解决方案有效,但该功能已存在于 ACF(高级自定义字段)中

if (get_field('Price')){
 the_field('Price');
}
于 2015-04-17T11:52:17.453 回答