サポート » 使い方全般 » 記事が所属するタームの一覧にタームアイコンを表示したい

  • gravity

    (@sound_creative)


    ニュースというカスタム投稿があり、
    ニュースには「お知らせ」「重要」「WEB」のタクソノミー’news-cat’があります

    記事の所属するタクソノミーの一覧を表示するように以下のようにしました

    <?php
    $loop = new WP_Query( array( 'post_type' => 'news', 'posts_per_page' => 9 ) );
    
    if($loop->have_posts()) : // 該当する投稿がある場合
    ?>
    		<div id="news_topics_list">
    
    <ul>
    	<?php while ( $loop->have_posts() ) : $loop->the_post(); // ループ開始 ?>
    
    <li>
    		<?php // カスタムタクソノミー 'news-cat' の処理
    		$termbook = array_shift(get_the_terms($post->ID, 'news-cat'));
    		$termbookimg = esc_html($termbook->slug);
    		$img = '<img src="' . get_bloginfo('stylesheet_directory'). '/images/icon/label_'
    			 . $termbookimg. '.png" alt="' . $cat->cat_name . '" />';
    		?>
    
    		<h3><a>/#main"></a><span><?php the_date("Y年m月d日"); ?></span><?php echo $img; ?><p><?php the_title();?></p></h3>
    <?php
    if ($terms = get_the_terms($post->ID, 'news-cat')){
    $termnames = array();
    foreach( $terms as $term ){
    	array_push( $termnames, $term->name );
    }
    echo join(' ',$termnames);
    }
    ?>
    		</li>
    	<?php endwhile; // ループ終わり ?>
    	  </ul>
              </div>
    <?php else: // 該当する投稿が無い場合 ?>
    	<p>ニュースはありません</p>
    <?php endif;
     ?>

    この場合、複数のタクソノミー名を取得し表示できているのですが、
    タクソノミー名だけでなく、アイコンも表示したいと考えています

    色々試行錯誤したんですが、うまくいかず
    以下のようにスラッグでのpng表示はできるのですが、

    <li>
    		<?php // カスタムタクソノミー 'news-cat' の処理
    		$termbook = array_shift(get_the_terms($post->ID, 'news-cat'));
    		$termbookimg = esc_html($termbook->slug);
    		$img = '<img src="' . get_bloginfo('stylesheet_directory'). '/images/icon/label_'
    			 . $termbookimg. '.png" alt="' . $cat->cat_name . '" />';
    		?>
    
    		<?php echo $img; ?>
    		</li>

    記事
    スラッグpng+タクソノミー名(リンク付)、スラッグpng+タクソノミー名(リンク付)
    スラッグpng+タクソノミー名(リンク付)
    のように複数タクソノミーに所属していてかつ、前にアイコンを表示する事が出来ません

    どのように2つを工夫すれば表示できるのか教えてください。

  • トピック「記事が所属するタームの一覧にタームアイコンを表示したい」には新たに返信することはできません。