現在のtermと同じかどうかで条件分岐
4件の返信を表示中 - 1 - 4件目 (全4件中)
-
稚拙ではないと思いますが、情報が少ないためにいろいろな状況が想像できてしまうのでアドバイスをもらいにくいですよ。
例えばこういうことでしょうか?
- 投稿のアーカイブページのループの中で
- 一つ前の投稿についていたタームを覚えておいて
- 現在の投稿のタームと比較する
- 同じなら、現在の投稿を表示する
- 違っていたら、新しいタームを表示させた後に現在の投稿を表示する
ご回答ありがとうございます。
基礎部分がほぼないままやっているため、アーカイブというものがわからないのですが、固定ページにカスタム投稿にて追加したものについてなのですが、
ターム1
画像 画像
名前 名前ターム2
画像 画像
名前 名前という風にターム1のものがまだある場合はそのまま処理していき、ターム2になった時に「改行」を行いたいのです。
ターム順に表示はうまく出ていれば下記コードが実際に入れているものです。--------------------
<?php $categories = get_terms( 'タクソノミー名', 'get=all' ) ; ?> <?php foreach($categories as $cat): ?> <?php //get_termsからの情報を格納 $cat_name = $cat->name; $cat_tax = $cat->taxonomy; $cat_term = $cat->term_id; $cat_term_tax_id = $cat->term_taxonomy_id; ?> <?php $loop = new WP_Query( array( 'post_status' => 'publish', 'post_type' => 'カスタム投稿名', 'tax_query' => array( array( 'taxonomy' => $cat_tax, 'field' => $cat_term_tax_id, 'terms' => $cat_term ) ), 'posts_per_page' => -1, ) ); ?> <li> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <a href="<?php the_permalink(); ?>" class="btn"> <div class="img_box"><?php echo wp_get_attachment_image(post_custom('画像'), 'goodsImg'); ?></div> <div class="txt_box"><h3><?php the_title(); ?></h3></div></a> <?php if ( ターム名が出ているものと同じ ): ?> 処理A <?php else : ?> 処理B <?php endif ; ?> <?php endwhile; ?> <?php endforeach; ?>
--------------------
という形で行いたいのですが、
後半の<?php if ( ターム名が出ているものと同じ ): ?> 処理A <?php else : ?> 処理B <?php endif ; ?>
の書き方がわかりません。
これで伝わればいいのですが、まだわからない場合はお手数ですがどこがわからないか教えて下さい。
こういうコードでどうでしょう。
<?php $posttype_slug = 'カスタム投稿タイプ'; $taxonomy_name = 'カスタムタクソノミー'; $categories = get_terms( $taxonomy_name ); ?> <ul><!-- ターム毎のリスト --> <?php foreach( $categories as $cat ): //get_termsからの情報を格納 $cat_name = $cat->name; $cat_term_id = $cat->term_id; ?> <li><?php echo 'ターム: ' . $cat_name; ?><!-- ここでターム名を表示 --> <?php $loop = new WP_Query( array( 'post_status' => 'publish', 'post_type' => $posttype_slug, 'tax_query' => array( array( 'taxonomy' => $taxonomy_name, 'terms' => $cat_term_id ) ), 'posts_per_page' => -1 ) ); ?> <ul><!-- タームが付いている投稿のリスト --> <?php while ( $loop->have_posts() ) : $loop->the_post(); ?> <li style="float:left"><!-- 横並びにする --> <a href="<?php the_permalink(); ?>" class="btn"> <div class="img_box"><?php echo wp_get_attachment_image(post_custom('画像'), 'goodsImg'); ?></div> <div class="txt_box"><h3><?php the_title(); ?></h3></div></a> </li> <?php endwhile; ?> </ul><!-- タームが付いている投稿のリスト --> <br style="clear:both" /><!-- 横並びを解除 -->ここで改行<br /> <?php endforeach; ?> <ul><!-- ターム毎のリスト -->
4件の返信を表示中 - 1 - 4件目 (全4件中)
- トピック「現在のtermと同じかどうかで条件分岐」には新たに返信することはできません。