Wordpressで関連記事を表示しているのですが、
関連記事がない場合に別のカテゴリーの関連記事を表示したく思っています。
以下の方な記述で色々試しているのですが、
分岐、whileの使い方が間違っている?のか、
エラーで表示されず、解決できずにいる状態です。。
<!--関連商品--> <section> <?php $categories = get_the_category($post->ID); $category_ID = array(); foreach($categories as $category): array_push( $category_ID, $category -> cat_ID); endforeach ; $args = array( 'post__not_in' => array($post -> ID), 'posts_per_page'=> 5,//defaultは10 'category__in' => $category_ID, 'orderby' => 'rand', ); $st_query = new WP_Query($args); ?> <?php if( $st_query -> have_posts() ): ?> <?php while ($st_query -> have_posts()) : $st_query -> the_post(); ?> <h4>関連商品</h4> <div> <dl> <dt class="thumbBox"> <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"> <?php if ( has_post_thumbnail() ): // サムネイルを持っているときの処理 ?> <?php $title= get_the_title(); the_post_thumbnail(array( 300,300 ), array( 'alt' =>$title, 'title' => $title)); ?> <?php else: // サムネイルを持っていないときの処理 ?> <img src="<?php echo get_template_directory_uri(); ?>/images/NoImg.png" alt="no image" title="no image" width="150" height="150" /> <?php endif; ?> </a> </dt> <dd> <h5 class="entry-title"> <a href="<?php the_permalink(); ?>"><?php echo mb_substr( $post->post_title, 0, 30) . '...'; ?></a> </h5> </dd> </dl> </div><!-- /.entry --> <?php endwhile; ?> <!-- 関連商品がない時、別カテゴリーの商品一覧を追加したい --> <?php query_posts('cat=1,2'); ?><!--カテゴリーID:例えば1,2のカテゴリーを指定--> <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> <h4>別カテゴリーの商品一覧</h4> <div class="entry"> <dl> <dt class="thumbBox"> <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"> <?php if ( has_post_thumbnail() ): // サムネイルを持っているときの処理 ?> <?php $title= get_the_title(); the_post_thumbnail(array( 300,300 ), array( 'alt' =>$title, 'title' => $title)); ?> <?php else: // サムネイルを持っていないときの処理 ?> <img src="<?php echo get_template_directory_uri(); ?>/images/NoImg.png" alt="no image" title="no image" width="150" height="150" /> <?php endif; ?> </a> </dt><!-- /.thumbBox --> <dd> <h5 class="entry-title"> <a href="<?php the_permalink(); ?>"><?php echo mb_substr( $post->post_title, 0, 30) . '...'; ?></a> </h5> </dd> </dl> </div><!-- /.entry --> <?php else: ?> <p>関連商品はありませんでした←これは本当はいらない</p> <?php endif;wp_reset_postdata();?> </section>
Wordpressの「ループ」のページのwhileの使い方も読んで。同じような記述にしているつもりなのですが、、、
何が間違っているのか、教えていただけないでしょうか?
お手数おかけしますが、
よろしくお願いいたします。
追記ーーー
エラーメッセージは
『このサイトで重大なエラーが発生しました。』
と表示されている状態です。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/03/23 07:51
2021/03/23 08:31
2021/03/23 08:34
2021/03/23 08:57
2021/03/23 09:11