お世話になります。
タイトルからではよくわからなかったとおもうのですが、wordpressにおいて、入れ子の2重ループではまってしまいました。
やりたいことは、お客様の声の内容とカスタムタクソノミーで指定した商品名(ターム)を表示し、商品名をクリックすると、該当の商品ページに飛ばしたいというものなのですが、作成テスト段階でつまずいてしまいました。
入れ子にした場合、親ループの記事の内容が、子ループの内容に書き換わってしまう問題にぶち当たり先に進めなくなってしましました。
◇カスタム投稿タイプ
・商品
・お客様の声
◇カスタムタクソノミー(ターム)
・商品名
(商品A)
(商品B)
(商品C)
と作成し、商品名のタクソノミーは、カスタム投稿タイプの商品とお客様の声で共通とします。
最終的にはお客様の声を表示するときに、(商品A)をクリックしたときに、商品<カスタム投稿タイプ>の同じターム(商品A)を振ったページをリンクできるよう、パーマリンクを取得したいのですがまずは正しい入れ子のループの方法を識者の方どなたかご存知であればお教えいただけないでしょうか。
よろしくお願いいたします。
lang
1 2<?php 3 $voicelist = get_posts( array( 4 'post_type' => 'user-voice', //お客様の声 5 'orderby' => 'desc', 6 'posts_per_page' => 12 7 ) ); 8 foreach ( $voicelist as $post ): 9 setup_postdata( $post ); 10?> 11 12<div class="user-voice_box"> 13 <div class="user-voice-category"> 14<?php 15 $terms = get_the_terms( $post -> ID, 'user-voice-category' ); 16 foreach ( $terms as $term ) { $termname = $term -> name; } 17 echo esc_html( $termname ) ;//商品名ターム表示 18 ?> 19<?php //子ループで商品<カスタム投稿>で同じタームが割り振られている記事をし取得する 20 $args = array( 21 'post_type' => 'syohin',//商品 22 'taxonomy' => 'user-voice-category', 23 'term' => $termname,//商品名ターム 24 'orderby' => 'desc', 25 'posts_per_page' => 1 ); 26?> 27<?php $my_query = new WP_Query( $args ); ?> 28<?php if ( $my_query->have_posts() ) :$my_query->the_post() ?> 29 30 <p>該当あり</p> 31 32<?php else : ?> 33 34 <p>該当なし</p> 35 36<?php endif; ?> 37 </div> 38 <div class="voice_title"><?php the_title(); ?></div> //お客様の声タイトル表示*内容がお客様の声ではなく商品に書き換わってしまう 39 <div class="voice_content"><?php the_content(); ?></div>//お客様の声本文*内容がお客様の声ではなく商品に書き換わってしまう 40 41</div> 42 43 44<?php 45 endforeach; 46 wp_reset_postdata(); 47?> 48 49
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。