1日1時間の副業【怪しくない】

ACFで条件分岐!フィールド名を変数にして行う方法!コピペ【Advanced Custom Field】

Advanced Custom Fieldでフィールド名を変数にする方法を紹介します。

ACFのフィールド名取得で陥りがちな問題は条件分岐が必要

Advanced Custom Fieldの中身の出力の基本構文が以下になっていることにより、field名を特定のフィールド名(例えば’bag’など)にしないと出力できないので、変数を指定できないのではないか?というものです。

 

ACFのフィールド名を変数で条件分技する場面

  • フィールド名が、ある条件と合致する場合にのみ出力したい場合に、if文を設定して使います

 

ACFのフィールド名を変数で条件分岐する方法コピペ

 

ACFのフィールド名を変数で条件分岐する方法解説

まず、タクソノミー 名が「goods」のものを$termsと定義して、親カテゴリを出力します。

例えば商品種類一覧を出力したい場合、タクソノミー 名を「goods」として、中身の商品種類である「バッグ」「財布」などを出力することになります。このとき、’parent’ => 0,とすることで、親カテゴリがないもののみ出力しています。例えば、「バッグ>ショルダーバッグ」のような商品カテゴリ設定をしている場合、「ショルダーバッグ」は出力しません。

 

今回は上で設定した、タクソノミーのスラッグ名($term->slug)を、Advanced Custom Fieldの変数とします。こうすることで、のちに、「タクソノミーのスラッグ名とAdvanced Custom Fieldのフィールド名が同じ場合」という条件をつけることもできます。

ここでif文を設定しているのは、フィールド名にタクソノミーのスラッグ名と一致するものがないとエラーが出ることがあるからです。