ishiguro3
@ishiguro3

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

カスタム投稿でクラス名にタームを追加したい

解決したいこと

固定ページにカスタム投稿の記事をカテゴリ別で取得したものを実装したのですが、
カテゴリ(ターム)ごとにクラス名を付けたいと考えてます。

簡単に言えば、やりたいことはこれです。


<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

2Answer

これでは実現できないのでしょうか?

<ul class="flex_box <?php echo $term->slug ?>">
1Like

Comments

  1. @ishiguro3

    Questioner

    回答ありがとうございます!
    さっそく試してみたところ、いけました!

phpもっと勉強してきます。

ちなみに、回答いただく前に考えた代替え案は以下です。

<?php
	if ($terms = get_the_terms($post->ID, 'tax_player')) {
	foreach ( $terms as $term ) {
	echo ('<span class="'.$term->slug.'">') ;
	echo ('</span>') ;
	}
	}
?>

で、spanにクラス名を付与して、
あとはCSSセレクターの一般兄弟結合子 A ~ B など駆使して、
必要ない項目を非表示していくイメージでした。

0Like

Your answer might help someone💌