前提・実現したいこと
とあるイベントのサイトをWordPressで作っています。
参加受付中のイベントのみを一覧表示させるページを作りたく思っています。
受付中の判定はタイムスタンプを使った判定処理をしています。
※この部分のソースは割愛していますが必要があれば記述します。
受付中のイベントのみを一覧表示されるところまではできました。
##下記で受付中のイベントのみ表示させることができました。
php
1<?php 2$args = array ( 3 'post_type' => 'event', //eventという名前のカスタム投稿です。 4); 5$event = new WP_Query( $args ); 6if($event->have_posts()): ?> 7 8<?php 9$event = new WP_Query( $args ); 10if($event->have_posts()): ?> 11<ul> 12<?php while ($event-> have_posts()) : $event->the_post(); ?> 13 14<?php //受付中の判定処理を記載(詳細ソースは省略) 15//受付中の場合は 16$flag = true; 17//受付終了の場合は 18$flag = false; 19?> 20 21<?php if($flag): //受付中の場合 22?> 23<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a> 24<?php endif; ?> 25 26<?php endwhile; ?> 27</ul> 28<?php endif; ?> 29<?php wp_reset_postdata(); ?>
ただ、受付中のイベントが無い場合、
「予定されているイベントはありません」と表示したく思っています。
これはどこにどのように記述をしたら良いのでしょうか?
例えば、下記のようにwhile文の中に入れてしまうと、イベント終了した投稿の数だけ
繰り返し表示されてしまいます。
下記のソースの場合、終了したイベントの数だけ「予定されているイベントはありません」がループ表示されてしまいます。
php
1<?php if($flag): //受付中の場合?> 2<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a> 3<?php else: ?> 4<p>予定されているイベントはありません</p> 5<?php endif; ?>
ループの外側に判定部分を記述した場合は、flagの条件部分が効かなくなってしまい、何も表示されなくなってしまいます。
##下記のソースの場合、「予定されているイベントはありません」が表示されません。
php
1<?php 2$event = new WP_Query( $args ); 3if($event->have_posts()): ?> 4 5<?php //受付中の判定処理を記載 6//受付中の場合は 7$flag = true; 8//受付終了の場合は 9$flag = false; 10if($flag): //受付中の場合 11?> 12<ul> 13<?php while ($event-> have_posts()) : $event->the_post(); ?> 14<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a> 15<?php endwhile; ?> 16</ul> 17<?php else: ?> 18<p>予定されているイベントはありません</p> 19<?php endif; ?> 20 21 22<?php endif; ?> 23<?php wp_reset_postdata(); ?>
どのように記述をするべきかご教示いただけないでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/30 17:20
2018/01/30 17:29
2018/01/30 17:44
2018/01/30 18:17
2018/01/30 18:43