カスタム投稿でクラス名にタームを追加したい
解決したいこと
固定ページにカスタム投稿の記事をカテゴリ別で取得したものを実装したのですが、
カテゴリ(ターム)ごとにクラス名を付けたいと考えてます。
簡単に言えば、やりたいことはこれです。
例)
<ul class="ターム名">
//記事の中身
</ul>
実装したソースコード
問題なのは、モーダルウィンドウ用のソースコードを無理やり入れてます。
ちゃんと動いています。
なので、クラス名を付けたい箇所はclass="fiex_box"の ul 又は li にタームを追加できたら。
<!-- カスタム投稿一覧 -->
<div class="player_box">
<?php
$tax_name = 'tax_player';
$posttype_name = 'player';
$terms = get_terms($tax_name);
foreach ( $terms as $term ):
$args = array(
'post_type' => $posttype_name,
'tax_query' => array(
array(
'taxonomy' => $tax_name,
'field' => 'slug',
'terms' => $term->slug,
),
),
);
$the_query = new WP_Query( $args );
?>
<span class="degree "><?php echo $term->name ?></span>
<?php if ($the_query->have_posts()): ?>
<!-- ここのクラス名にタームを追加 -->
<ul class="flex_box">
<!-- /ここのクラス名にタームを追加したい -->
<?php while ($the_query->have_posts()) : $the_query->the_post(); ?>
<!-- 記事表示 start -->
<li class="">
<figure class="img_photo">
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail();
}else{ ?>
<img src="<?php echo get_template_directory_uri(); ?>/images/info/pc/demo_sam.jpg" alt="<?php the_title(); ?>">
<?php } ?>
</figure>
<div class="txt_box">
<a class="modal_open" data-target="<?php the_ID(); ?>">
<h4 class="left_top"><?php the_field('○○○○'); ?></h4>
<dl class="rank">
<dt>項目A</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
<dl class="record">
<dt>項目B</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</a>
</div>
<!-- モーダルウィンドウ -->
<div id="modal_player" class="modal_player" >
<div id="<?php the_ID(); ?>" class="modal js-modal">
<div class="modal-bg modal_close js-modal-close"></div>
<div class="modal_content">
<div class="modal_box">
<figure class="img_photo">
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail();
}else{ ?>
<img src="<?php echo get_template_directory_uri(); ?>/images/info/pc/demo_sam.jpg" alt="<?php the_title(); ?>">
<?php } ?>
<h4 class=""><?php the_field('○○○○'); ?></h4>
<ul class="">
<li>
<dl>
<dt>項目B</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
<li>
<dl>
<dt>項目C</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
<li>
<dl>
<dt>項目D</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
<li>
<dl>
<dt>項目E</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
<li>
<dl>
<dt>項目F</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
<li>
<dl>
<dt>項目G</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
<li>
<dl>
<dt>項目H</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
<li>
<dl>
<dt>項目I</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
<li>
<dl>
<dt>項目J</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
<li>
<dl>
<dt>項目K</dt>
<dd><?php the_field('○○○○'); ?></dd>
</dl>
</li>
</ul>
</div>
<a class="modal-close modal_close"><img src="<?php echo get_template_directory_uri(); ?>/images/common/close.png" alt="閉じるボタン"></a>
</div>
</div>
</div>
<!-- /モーダルウィンドウ -->
</li>
<!-- 記事表示 end -->
<?php endwhile; ?>
</ul>
<?php endif; ?>
<?php endforeach; wp_reset_postdata(); ?>
<!-- /カスタム投稿一覧 -->
</div>
自分で試したこと
このソースコードならタームをクラス名に付与できるのは知っているのですが、
spanの中に記事の中身を記入ができないので、別の方法を探してます。
<?php
if ($terms = get_the_terms($post->ID, 'tax_player')) {
foreach ( $terms as $term ) {
echo ('<span class="'.$term->slug.'">') ;
echo ('</span>') ;
}
}
?>
0