WordPress

Advanced Custom Fields で登録したタームのフィールド値を取得する方法

Advanced Custom Fields で登録したタームのフィールド値を取得する方法

WordPress のプラグイン Advanced custom field(以下 ACF) を使って、タームに登録したフィールド値を取得する方法を紹介します。
例えば、タームに人や固有のものを設定した時に、ニックネームや詳細なプロフィールなどを登録して、アーカイブページに表示したい場合に便利な方法です。

基本形

ACF でカスタムフィールドを作成。特定のカテゴリまたはタクソノミーを指定して、カテゴリやタームに固有の値を設定します。
次のコードを追加してフィールド値を取得します。


<?php get_field('タームフィールド名','タクソノミー名_'.$term_id); ?>

タームフィールド名はACFで指定したフィールド名です。
タクソノミー名(任意の名前)_ の最後の ‘_(アンダーバー)’ は必須なので消さないように気をつけましょう。

タームに登録されたキーカラーの表示方法

タームの取得を参考に、タームに登録したキーカラーの出力例を紹介します。
タクソノミー news-cat に登録されているタームに、カスタムフィールドでカラーピッカーフィールドを登録した場合の表示方法を紹介します。
投稿内でタームに付与した値を取得してみます。


<?php
$terms = wp_get_object_terms( $post->ID, 'news-cat' );
$term_id = $terms[0]->term_id;
$term_name = $terms[0]->name;
$term_color = get_field('キーカラー','news-cat_'.$term_id);
?>
<span style="background-color:<?php echo $term_color; ?>;"><?php echo $term_name ?></span>

記述内容に問題がなければバックグラウンドカラーが指定できたはずです。

まとめ

WordPress のプラグイン Advanced Custom Fields を使って登録したタームのフィールドの値を取得する方法を紹介しました。
カテゴリやタームの情報が取得できれば、フィールド値を表示するのは比較的簡単な気がします。

スポンサーリンク

合わせて読みたい関連記事