ACF(Advanced Custom Fields)の選択肢を取得したい場合って、結構ありますよね。
Selectのカスタムフィールドをタクソノミーみたいに使っている場合など。
タクソノミーでもいいんですけどね、
投稿する流れ的に、こことここのフィールドの間で、この選択をさせたい!みたいな。
んー分かります??
...まあ、そんな時になんかいい方法ないかなーと思って調べてたんですが、
$field = get_field_object('listing_type');
$field_key = $field['key'];
↑ これがドヤ顔で出てくる。。。
違うよ、そうじゃない。しかも、なんかfalseが帰ってくる!
ループ内なら動きそうだけど、今回はそうじゃない!
というわけで、負けずに調べてたら解決策を見つけることができました!
下記コードで実現できます!!
<?php
$area_choices = acf_maybe_get_field( 'area', false, false )['choices'];
if ( $area_choices ) :
?>
<ul class="area_list">
<?php foreach ( $area_choices as $key => $value ) : ?>
<li><a href="/area/<?php echo $key; ?>"><?php echo $value; ?></a></li>
<?php endforeach; ?>
</ul>
<?php
endif;
?>
こんなことせずに、静的にリンク入れればいいじゃないって思う方もいるかもですが、
選択肢が増えた場合を考慮して、余計なテンプレート編集をしなくていいように手回ししておくのがプロだと思ってます。
まあ、どこまでこだわるかはスケジュール次第ですけどね。