Advanced Custom Fieldsで、チェックボックスの値を全部取得したい

WordPressのプラグイン「Advanced Custom Fields」で、チェックボックス(セレクトボックス)の値を、選択してないやつも含めて全部取得したい。

例えば、「月火水木金土日」という選択肢があって、「火水」しか選択してなくても、とりあえずリストとして全部表示させたいわけである。

これはけっこう長いこと悩んでいて、あれこれややこしい方法で実装してみては「ほんまにこれしかないんか…」と調査しまくっていたが、ついにめっちゃ簡単な方法を見つけたので備忘録。







実装

関数”get_field_object()”を使う。

例えば、”custom_week”というカスタムフィールドに、「月~日」の選択肢を用意しており、更に土日を選択しているとき、値は以下のようになる。

“var_dump()”でデバッグしてしまえばだいたいわかるけど、この場合

“$week[‘choices’]”

で選択肢を配列で全部取得できる。あとはforeachで回すなりなんなり好きにしちゃいましょう!

繰り返しフィールドだろうとなんだろうと、get_field_object()で全値をとって、var_dump()で中身を見てしまえばなんだってできるね。

以上、現場からでした。

フォローする