PHPのfor文で繰り返しの処理がされない(1回で止まってしまう)

実現したいこと

Wordpressのクエリーループを年度で区切って記事一覧を作成したいです。

前提

Wordpressのクエリループを、PHPファイルの中にwp_queryを記載して取得しています。
年度ごとの表示にするためにdate_queryを使用しております。

発生している問題・エラーメッセージ

上記内容について実際に動作していたのですが、PHPファイルを何も編集していないにも関わらず
突如として最初の1回しか取得しなくなってしまいました。
例えば、4/1を年度の区切りとした場合、2023.04.01~現在までの記事が2023年度として取得されますが
2023.03.31以前(2022年度以前)は取得されません。

該当のソースコード

<?php $nowY = get_the_date( 'Y' ); for( $i = $nowY; $i > 2015; $i-- ){ $j = $i + 1; //来年 $wp_query = new WP_Query( array( 'post_type' => 'post', 'posts_per_page' => -1, 'date_query' => array( array( 'after' => array( // 4/1から 'year' => $i, 'month' => 4, 'day' => 1, ), 'before' => array( // 来年3/31まで 'year' => $j, 'month' => 3, 'day' => 31, ), 'inclusive' => true, 'compare' => 'BETWEEN', ), ), ) ); if ($wp_query->have_posts()) : while ($wp_query->have_posts()) : $wp_query->the_post(); the_title(); endwhile; endif; wp_reset_query(); } ?>

試したこと

get_the_date( 'Y' )で正確に今年の年数が取得できていないのではないかと思いましたがこちらは問題ありませんでした。
また、date_queryを設定しない場合は問題なく全件表示されます。
デバッグモードにしてもエラーは表示されません。

補足情報(FW/ツールのバージョンなど)

問題無く動いていた物ですし、エラーも出ていないので文法やスペルミスといったものは無いと思っているのですが
もしかしたら見落としがあるのかもしれません。
お力添えいただけましたら幸いです。
初めての質問のため、不備などありましたらご指摘いただきたく思います。
よろしくお願いいたします。

コメントを投稿

0 コメント