プログラミング

【Advanced Custom Fields(ACF)】タクソノミー出力でつまずいた時の解決法

Advanced Custom Fieldsのロゴ
ナシタカ
ナシタカ
この記事ではAdvanced Custom Fieldsのタクソノミー出力でつまずいた時の解決法について書いています。僕が実際に使っていて困った部分なのですが、僕なりに解決したときの方法についてまとめています!

どうも、プログラミング大好きナシタカ(@ehicalog)です。

Advanced Custom Fieldsを使っていて、出力をしようとしてつまづいた部分を紹介します。

やろうとしたことはカスタムフィールドで利用したタクソノミーの出力です。
3項目でタクソノミーを利用して選択してもらうんですが、その出力が上手くできずに困っていました。

最初は訳が分からずにどうしたらいいか全然分からなかったんですが、やっと気付いて対処ができたので備忘録としてまとめていきます。

Advanced Custom Fieldsの出力

まず参考にさせて頂いたのがこちらの記事です。

まずこちらのコードをそのまま使わせてもらったところ、タクソノミーを利用した項目3つの内1つの項目はちゃんと表示されましたが、残りの2つは表示されません

自分のコードの打ち方が悪いのかとかフィールド名が悪いのか、フィールド名が他と被っているのかなどチェックしましたが、変わらず表示されません。

これで2日ぐらい悩んでたんですが、ここであることに気がつきました。

タクソノミーのフィールドタイプ

注目したのがフィールドタイプの項目

表示されているタクソノミーの項目はフィールドタイプが「ラジオボタン」となっていて、表示されていない項目のフィールドタイプは「チェックボックス」になっていました。

Advanced Custom Fieldsでの出力に関して他の項目で知ったんですが、複数項目の選択が可能な場合はコードを対応させる必要があるんです。

タクソノミーではないチェックボックスの際にも表示させるのにつまずいたので、今回もこれが関係しているのではとやっと気がつきました。

チェックボックスに適応させるコード

以上からコードをチェックボックスに対応させる必要があることがわかりました。

そこで参考にさせて頂いたのがこちらの記事です。

こちらに載っているタクソノミーのコードを利用したところ、無事に出力されました。

ちなみに出力されたタクソノミー名にリンクはいらない!という方はこちらのコードを利用してください。

<?php if(get_field('term')): ?>
    <?php $term = get_field('term'); ?>
    <p>タクソノミー:<?php 
    foreach((array)$term as $value) { ?>
        <?php echo $value->name; ?>
        <?php if(next($term)!==FALSE){ echo ", ";} ?>
    <?php } ?>
    </p>
<?php endif; ?>

まとめ

今回はAdvanced Custom Fieldsを使っていて大ハマりしましたが、原因がわかれば非常に単純な話でした。

チェックボックスのような複数選択の項目に関しては、意外にハマりやすい部分だと思うので注意してください!

ABOUT ME
ナシタカ
30代の子育てパパ。生活を豊かにするために自分がやってみたライフハックを紹介していきます。人生をより豊かに、楽しく!がモットー。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です