料金などの金額をacfで出力させるとき、単純に数字だけにできない場合がある。
具体的には、金額に幅があり~を付けなければならない状況。
例:acfのフィールド名は’room_price’
<?php
$price_raw = post_custom('room_price'); // 例: "12345~5678円"
$price_raw = mb_convert_kana($price_raw, 'n'); // 全角数字を半角に変換(例: "12345~5678円")
// 数字部分だけをカンマ付きに整形
$formatted_price = preg_replace_callback('/\d+/', function($matches) {
return number_format($matches[0]);
}, $price_raw);
echo $formatted_price; // 例: "12,345~5,678円"
?>
これをテンプレートで使うと
<?php
$price_raw = post_custom('room_price'); // 例: "12345~5678円"
$price_raw = mb_convert_kana($price_raw, 'n'); // 全角数字を半角に変換(例: "12345~5678円")
// 数字部分だけをカンマ付きに整形
$formatted_price = preg_replace_callback('/\d+/', function($matches) {
return number_format($matches[0]);
}, $price_raw);
?>
<table>
<tr>
<th>料金</th><td><?php echo $formatted_price; ?>円(税込)</td>
</tr>
</table>