WordPress
Advanced Custom Fields で登録したタームのフィールド値を取得する方法
最終更新日 - 公開日 2015.01.20
by

WordPress のプラグイン ACF を使ってタームに紐づくカスタムフィールドの値を表示する方法を紹介します。
例えば、タームにキーカラーを設定して、カテゴリを色分けして表示したいときに便利な方法です。
タームに紐づくカスタムフィールド値の基本的な取得方法
まずは Advanced custom field(以下 ACF) を使って、タームに紐づくカスタムフィールドを作成します。
次のコードは、タームに追加したカスタムフィールド「カスタムフィールド名」の値を取得する方法です。
<?php get_field('カスタムフィールド名','タクソノミースラッグ_'.$term_id); ?>
タクソノミースラッグは適宜変更してください。
タクソノミースラッグの最後の「_(アンダーバー)」は必須です。消さないように気をつけましょう。
タームに登録された画像の表示方法
タームに紐づくカスタムフィールド値に画像を登録した場合の表示方法を紹介します。
例えば、カスタムフィールド名が「画像」の時に、次のコードをテンプレートのタームの値を取得できるループ内に追加します。
<?php $image = get_field('タームフィールド名','タクソノミースラッグ_'.$term_id); if( !empty($image) ): ?>
<img src="<?php echo $image['url']; ?>" alt="<?php echo $image['alt']; ?>" />
<?php else: ?>
<img src="<?php echo get_template_directory_uri(); ?>/img/pic_dammy.jpg" alt="">
<?php endif; ?>
画像の表示内容をカスタマイズしたい場合はAdvanced Custom Fields の取得と表示方法の画像の取得方法をご確認ください。
タームに登録したカスタムフィールド値(キーカラー)を表示する方法
前項を参考に、投稿に紐づくタームに設定したカラーピッカーのカスタムフィールド値の取得方法を紹介します。
例えば、タクソノミースラッグが information-category 、登録されたカスタムフィールドの値が #009933 の時。
アンカータグの背景色に選択した値を付与する場合に、次のコードをテンプレートのループ内に追加します。
<?php // 投稿に紐づくタームを表示
$terms = wp_get_object_terms($post->ID, 'information-category'); // タクソノミーのタームを取得
if(!empty($terms)){
if(!is_wp_error($terms)){
echo '<ul>';
foreach($terms as $term){
$term_link = get_term_link($term->slug, $custom_post_cat); // タームアーカイブのリンクを取得
$term_name = $term->name; // ターム名の取得
$term_id = $term->term_id; // タームIDの取得
$term_color = get_field('キーカラー','information-category_'.$term_id); // カスタムフィールドの取得
echo '<li><a href="'.$term_link.'" style="background-color:'.$term_color.';">'.$term_name.'</a></li>'; // タームの表示
}
echo '</ul>';
}
}
?>
表示がうまくいかない場合は、タクソノミースラッグ(上記のサンプルコードでは二箇所)を変更しているかを確認。
二箇所目の _ が残っていることを確認。ループ内にコードを設置しているかを確認してください。
まとめ
WordPress のプラグイン ACF を使って、タームに登録したカスタムフィールドの値を取得して表示する方法を紹介しました。
カテゴリやタームに登録したカスタムフィールドの値が取得できれば表現の幅が広がると思います。
取得に少し癖がありますが頑張ってチャレンジしてみてください。