ACFのフィールドタイプ【タクソノミー】で指定したタクソノミーの画像を表示させたいです。
###前提・実現したいこと
0. カスタム投稿タイプAuthorにACFのフィールドタイプ【タクソノミー】を設置
0. 【タクソノミー】に関してはカスタム投稿タイプArticleのタームを複数選択
0. タームのリンクと、タクソノミーにACFで設置した画像を表示
###発生している問題
シングルページなのでそのページが属しているタームを吐き出しているため、同じ画像が繰り返し表示してしまう。
###該当のソースコード
<?php $terms = get_field('author_article_list'); if( $terms ): ?> <ul id="sideContentsAuthorSeries"> <?php foreach( $terms as $term ): ?> <li><a href="<?php echo get_term_link( $term ); ?>"><?php $ctm = get_post_meta($post->ID, 'header_images', true);?> <?php if(empty($ctm)):?> <?php $term_sp = get_the_terms( $post->ID, 'articlecat' ); $term_idsp = 'articlecat_'.$term_id; $photo = get_field('cat_images_02',$term_idsp); $photosp = wp_get_attachment_image_src($photo, 'full'); ?> <img src="<?php echo $photosp[0]; ?>" alt="<?php echo $term_name; ?>"> <?php else : ?> <?php $icatchimage = wp_get_attachment_image_src(get_field('header_images'), 'full'); ?> <img src="<?php echo $icatchimage[0]; ?>" alt="<?php echo get_the_title(get_field('header_images')) ?>" /> <?php endif;?></a></li> <?php endforeach; ?> </ul> <?php endif; ?>
##解決したコード
無事解決しました。やりたいことを色々と織り交ぜすぎてシンプルにできるところをしていなかったため、コードがぐちゃぐちゃになってしまったのが原因かと思います。
<?php $terms = get_field('author_article_list'); if( $terms ): ?> <ul> <?php foreach( $terms as $term ): ?> <li><a href="<?php echo get_term_link( $term ); ?>"> <?php $term_sp = get_term_by( 'id', $term, 'articlecat' ); $term_idsp = 'articlecat_'.$term_sp->term_id; $photo = get_field('cat_images_02',$term_idsp); $photosp = wp_get_attachment_image_src($photo, 'full'); ?> <img src="<?php echo $photosp[0]; ?>" alt="<?php echo $term_sp->name ?>"> </a> </li> <?php endforeach; ?> </ul> <?php endif; ?>
画像の呼び出し方が悪いのはわかっているものの、うまくいかないのでご教授お願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/12/29 17:40
退会済みユーザー
2017/12/30 03:09
退会済みユーザー
2018/01/01 12:20 編集