teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

正しい回答

2019/07/10 07:54

投稿

YukiYamashina
YukiYamashina

スコア1011

answer CHANGED
@@ -1,1 +1,47 @@
1
+ すべて取得するのであれば、未来の予定をカウントしてみてはいかがでしょうか。
2
+
3
+ ```php
4
+ <div id="test_box" class="box">
5
+ <div class="part event_part">
6
+ <ul>
7
+ <?php
8
+ $args = array(
9
+ 'numberposts' => -1,
10
+ 'post_type' => 'event'
11
+ );
12
+
13
+ $posts = get_posts( $args );
14
+
15
+ $count = 0;
16
+
17
+ if ( $posts ) {
18
+ foreach( $posts as $post ) {
19
+ setup_postdata( $post );
20
+
21
+ $today = date( "Y.m.d" );
22
+ $event_date = get_field( 'event_date' );
23
+
24
+ if ( $today <= $event_date ) {
25
+ $count++;
26
+ ?>
27
+ <li>
1
- `elseif ( $today > $event_date )` が `foreach( $posts as $post )` のループの外にある(`elseif` の上に `endforeach` がある)のが原因ではないでしょうか。
28
+ <p><?php the_field( 'event_date' ); ?></p>
29
+ <p><?php the_title(); ?></p>
30
+ </li>
31
+ <?php
32
+ }
33
+ }
34
+ wp_reset_postdata();
35
+ }
36
+ if ( 0 === $count ) {
37
+ ?>
38
+ <li>
39
+ <p>現在イベントの予定はありません。</p>
40
+ </li>
41
+ <?php
42
+ }
43
+ ?>
44
+ </ul>
45
+ </div>
46
+ </div>
47
+ ```