回答編集履歴

1

正しい回答

2019/07/10 07:54

投稿

YukiYamashina
YukiYamashina

スコア1011

test CHANGED
@@ -1 +1,93 @@
1
+ すべて取得するのであれば、未来の予定をカウントしてみてはいかがでしょうか。
2
+
3
+
4
+
5
+ ```php
6
+
7
+ <div id="test_box" class="box">
8
+
9
+ <div class="part event_part">
10
+
11
+ <ul>
12
+
13
+ <?php
14
+
15
+ $args = array(
16
+
17
+ 'numberposts' => -1,
18
+
19
+ 'post_type' => 'event'
20
+
21
+ );
22
+
23
+
24
+
25
+ $posts = get_posts( $args );
26
+
27
+
28
+
29
+ $count = 0;
30
+
31
+
32
+
33
+ if ( $posts ) {
34
+
35
+ foreach( $posts as $post ) {
36
+
37
+ setup_postdata( $post );
38
+
39
+
40
+
41
+ $today = date( "Y.m.d" );
42
+
43
+ $event_date = get_field( 'event_date' );
44
+
45
+
46
+
47
+ if ( $today <= $event_date ) {
48
+
49
+ $count++;
50
+
51
+ ?>
52
+
53
+ <li>
54
+
1
- `elseif ( $today > $event_date )` が `foreach( $posts as $post )` のループの外にある(`elseif` の上に `endforeach` がある)のが原因ではないでしょうか。
55
+ <p><?php the_field( 'event_date' ); ?></p>
56
+
57
+ <p><?php the_title(); ?></p>
58
+
59
+ </li>
60
+
61
+ <?php
62
+
63
+ }
64
+
65
+ }
66
+
67
+ wp_reset_postdata();
68
+
69
+ }
70
+
71
+ if ( 0 === $count ) {
72
+
73
+ ?>
74
+
75
+ <li>
76
+
77
+ <p>現在イベントの予定はありません。</p>
78
+
79
+ </li>
80
+
81
+ <?php
82
+
83
+ }
84
+
85
+ ?>
86
+
87
+ </ul>
88
+
89
+ </div>
90
+
91
+ </div>
92
+
93
+ ```