公開日
更新日

カスタムフィールドが連番の時に処理を繰り返す

こんにちは、クロコロールの熊田です。
WordPressでカスタムフィールドを利用する場合、下記のように連番のカスタムフィールドを連続して処理したいことがあるかと思います。

…長い!

実際の案件だとliタグの中身が複数行に渡っていてさらにそれがカスタムフィールドの数だけ続いて…となると冗長にも程があります。
さらにliタグの中身が変更になるとカスタムフィールドの数だけ修正作業が必要になります。保守性も悪いです。

というわけでよりシンプルで保守性も高いスマートな書き方を紹介します。

for文を使って繰り返し処理

数字が変わるだけであとは同じ処理ならfor文を使いましょう。
冒頭のコードをfor文を使って書き直したのが以上になります。
これならliタグの中身に変更が生じても修正が一回で済みます。
繰り返しの回数を変更する場合は「$i<=8」の部分を変更するだけです。

ゼロパディングにも対応してみる

例えばfield01からfield10まで繰り返し処理したい…すなわち連番がゼロパディングパターンで処理を繰り返したいこともあるでしょう。
その場合は以下のようになります。

ポイントは四行目のstr_pad関数です。
str_pad関数は対象文字列を指定の文字で指定の桁数埋めてくれる関数です。

第一引数: 対象文字列
第二引数: 埋める桁数
第三引数: 埋める文字
第四引数: 埋める側。左側を埋める場合STR_PAD_LEFT、右側だとSTR_PAD_RIGHT、両側だとSTR_PAD_BOTH。

返り値は埋めた後の文字列です。

例えばこの場合だと『「1」を「3桁」「左側」に「0」で埋める』ので出力は「001」になります。

参考: PHP: str_pad – Manual

まとめ

1. 回数が決まった繰り返し処理はfor文を使おう。
2. 文字埋めはstr_pad関数。

The following two tabs change content below.

熊田 賢太郎

株式会社クロコロールのコーディングを担当。デジタルハリウッドを卒業後、クロコロールに入社。HTML、CSS、JavaScript、Jquery、PHPの言語を使用。現在は、WordPressエンジニアとして、Webサイト制作、既存サイトのカスタマイズやリニューアル、テーマの制作、サイトのWordPress化、カスタム投稿作成、保守などを担当。
内容がよかったら、シェアをお願いします!
一覧へ戻る

INSTAGRAM