※ ChatGPTを利用し、要約された質問です(原文:WordPressにおいて、サブカテゴリーに画像を表示させる。)
WordPressでサブカテゴリーに画像を表示させる方法
このQ&Aのポイント
WordPressでサブカテゴリーに画像を表示させる方法について詳しく説明します。
サブカテゴリーにチェックが入っている場合に適切な画像を表示する方法をご紹介します。
ループ処理を使用してサブカテゴリーの画像を表示させる方法を解説します。
WordPressにおいて、サブカテゴリーに画像を表示させる。
WordPressにおいて、サブカテゴリーに画像を表示させる。
WordPress,PHP初心者です。
現在 情報サイトを作っているのですが、
あるカテゴリーのループ中に、サブカテゴリーにも属していると、画像を表示させたいです。
ショッピングサイト等で例を言うと
「シャツ」という大カテゴリーをループを使って一覧で出力し、
その中で、サブカテゴリー「売り切れ」や「NEW」にチェックを入れていると(管理画面で)
それに適した画像が表示されるようにしたいのです。
”「売り切れ」と「NEW」にどちらも属している場合もあります”
なおかつ、そのサブカテゴリーにチェックが入っていると
上位に表示されると一層良いのですが。
ループの中で、更にループ処理?という考えがあまり正しくないような気がするのですが、
試している所やはりうまくいきません。
ソースは下記の通りです。
<!--大カテゴリーのループ開始-->
<?php query_posts("cat=3&showposts=10"); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="list-box">
<a href="<?php the_permalink() ?>">
<img src="<?php echo get_post_meta($post->ID,'faceimage',TRUE); ?>" alt="<?php the_title(); ?>" width="141" height="141" />
</a>
<p class="name"><?php the_title(); ?></p>
<p class="size"><?php echo get_post_meta($post->ID,'textfield',TRUE); ?></p>
<!--売り切れの場合、画像表示-->
<?php query_posts("cat=4"); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="ico-on"><img src="hogehoge" alt="売り切れ" /></div>
<?php endwhile; ?>
<?php endif; ?>
<!--新着アイテムの場合、画像表示-->
<?php query_posts("cat=6"); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="ico-new"><img src="hogehoge2" alt="新着アイテム" /></div>
<?php endwhile; ?>
<?php endif; ?>
</div>
<!--ループ完全に終了-->
<?php endwhile; ?>
<?php endif; ?>
調べてみたものの、行き詰まっています。
稚拙な質問ではございますが、
どうぞご教授お願い致します。
お礼
お返事ありがとうございます。 ご教授頂きましたソースで試しました所、 大カテゴリーに属する一覧は望んでいた処理の通り、 出力されました。 ただ「売り切れ」「NEW」の画像出力に少々稼動がおかしいようなのです。 例えば、 1.全ての記事には大カテゴリーにチェックを入れ、 サブカテゴリーにはチェックを1つも入れておらずとも、 出力としては数点の記事には画像が表示されていたりする。 (サブカテゴリーにチェックが入っている状態) 2.記事の1つにでもサブカテゴリーのどちらかにチェックを入れると、 全ての記事においてどちらの画像も表示されてしまう。 (全ての記事においてサブカテゴリーにチェックが入っている状態) ソースは下記の通りです。 <!--大カテゴリーのループ開始--> <?php query_posts("cat=3"); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <div class="list-box"> <a href="<?php the_permalink() ?>"> <img src="<?php echo get_post_meta($post->ID,'faceimage',TRUE); ?>" alt="<?php the_title(); ?>" width="141" height="141" /> </a> <p class="name"><?php the_title(); ?></p> <p class="size"><?php echo get_post_meta($post->ID,'textfield',TRUE); ?></p> <!--売り切れの場合、画像表示--> <?php $my_query = new WP_Query("cat=4"); ?> <?php if ($my_query->have_posts()) : ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <div class="ico-on"> <img src="hogehoge.jpg" alt="売り切れ" /> </div> <?php endwhile; ?> <?php endif; ?> <!--新着アイテムの場合、画像表示--> <?php $my_query = new WP_Query("cat=6"); ?> <?php if ($my_query->have_posts()) : ?> <?php while ($my_query->have_posts()) : $my_query->the_post(); ?> <div class="ico-new"> <img src="hogehoge2.jpg" alt="新着アイテム" /> </div> <?php endwhile; ?> <?php endif; ?> </div> <!--ループ完全に終了--> <?php endwhile; ?> <?php endif; ?> <?php wp_reset_query(); ?> 上記でうまくいかず、rewind_posts()等も使用してみましたが うまくいきません。 あと基本情報が不足していました。申し訳ありません。 WordPressのバージョンは2.8.4になります。 特にループの中でループ処理の様な「この方法でなくてはならない」という希望はなく、 大カテゴリー3と、サブカテゴリーの4と6の3点にチェックが入っていれば 一番上に表示。 次に大カテゴリー3と、サブカテゴリーの4の2点にチェックが入っていればならば2つ目に表示。 等と、1ページに複数のループを使用したりと方法が違えど構いません。 もしよろしければ、ご返答お願い致します。