WordPress

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

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

WordPress のプラグイン ACF を使ってタームに紐づくカスタムフィールドの値を表示する方法を紹介します。
例えば、タームにキーカラーを設定して、カテゴリを色分けして表示したいときに便利な方法です。

  1. タームに紐づくカスタムフィールド値の基本的な取得方法
  2. タームに登録された画像の表示方法
  3. タームに登録したカスタムフィールド値(キーカラー)を表示する方法

タームに紐づくカスタムフィールド値の基本的な取得方法

まずは 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 を使って、タームに登録したカスタムフィールドの値を取得して表示する方法を紹介しました。
カテゴリやタームに登録したカスタムフィールドの値が取得できれば表現の幅が広がると思います。
取得に少し癖がありますが頑張ってチャレンジしてみてください。

この記事をシェアする

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