黒ブタBLOG

カスタムフィールドの出力で頭の0が消える時の対処法【解決】

ワードプレスのプラグイン「Advanced Custom Fields」を使っているのですが、店番で桁数が決まっている時0から始まる連番をつける。

また、電話番号など0から始まる番号など、カスタムフィールドで呼び出すと稀に0が省かれて、出力される。
例として桁数が3桁で入れる決まりがあったとする。
カスタムフィールドの項目名店番(shop-code)に店番が1番だった場合、桁数を合わせるために頭に0を追加して入力する。
店番が1なので桁数を合わせた時、入力するデータは”001″となる。
php上での呼び出しは

<?php the_field('shop-code'); ?>

となるが、呼び出される値は0が省かれた” 1 ”となる。
レイアウトなどの問題もあり、0を省かないで綺麗に3桁で表示して並べたい。

解決方法

そんな時は、phpの関数” sprintf “を使うと解決できる。

<?php
//まず最初にカスタムフィールドの数値を変数として格納
$store_code = get_field('store_code');
//格納した変数(数値が3桁以下だった場合、たりない分だけ頭に0を追加)
//"%03"が3桁指定。
//%03の後についている"d"は数字という意味です。
$store_code2 =sprintf("%03d",$store_code);
//最後に定義した変数をechoで呼び出す
echo $store_code2;
?>

これで、呼び出した数字の先頭についていた0が消されても強制的に0を付け直させることが出来ます。
しかし、桁数が違った場合このプログラムは使えないので別の方法を考えましょう。