web関連
ACFでカスタムタクソノミーのタームに設定した画像を出力する方法
カスタム投稿のタクソノミーのターム編集画面にACF使って画像を設定できるようにしたけど出力方法がよくわからず苦戦をした時の備忘録
ターム内に追加したACFの画像を出力する方法
今回は返り値「画像id」を選択した例
<?php
$terms = get_terms('タクソノミー名');
foreach ( $terms as $term ) :?>
<?php // ターム内のデフォルト情報出力
echo $term->name;//タームの名前
echo $term->slug;//タームのスラッグ
echo $term->description;//タームの説明
?>
<?php // ターム編集画面内のカスタムフィールド出力(url出力)
$term_id = esc_html($term->term_id);
$term_idsp = "タクソノミー名_".$term_id;// アンダーバー(_)は必須
$acf = get_field('カスタマフィールド名',$term_idsp);
// 画像の出力サイズは「full」サイズを指定
$acf_img = wp_get_attachment_image_src($acf, 'full');
?>
<?php
// 返り値「画像id」でURLを出力
echo $acf_img[0];
// ▼以下は他の返り値の時のURLの出力メモ
// 返り値「画像配列(オブジェクト)」の場合
// echo $acf['url'];
// 返り値「画像URL」の場合
// echo $acf;
?>
<?php endforeach; ?>
基本的にACFの「画像」フィールドは返り値「画像id」で設定すればサイズ調整(サムネイルサイズや中サイズで出力)できるので便利
メモ:get_terms()関数で引数(パラメータ値)を指定
get_terms()関数で引数(パラメータ値)を指定できるの知らなかったのでメモ
<?php // 引数の設定例
$args = array(
'orderby' => 'name',
'order' => 'ASC',
…etc
);
$terms = get_terms('タクソノミー名',$args);
foreach ( $terms as $term ) :?>
…
get_terms()でパラメータ使えるの知らなかったからメモ
その他似た関数もあったのでメモ
メモ:get_term()関数
タクソノミー($taxonomy)に属するタームid($term_id)を指定して情報を取得する
<?php $cat = get_term( $term_id, $taxonomy ); ?>
メモ:get_term_by()関数
タクソノミー($taxonomy)に属するターム’id’,’slug’,’name’($field)のどれか選択してその値($value)に指定した情報を取得
<?php get_term_by( $field, $value, $taxonomy) ?>
実際に使ってみないとよくわかんねーわ
なんかほかにもいっぱいあるみたい
参考
▼WordPressで種類が多くて混乱するタクソノミーやタームを表示するときの関数のまとめ
https://sole-color-blog.com/blog/488/
ターム周りは苦手