サブループ (get_post & foreach)がなぜが出力されないメモ
サブループ (get_post & foreach)がなぜが出力されない
当初は要素の順番の入れ替えなどで表示されていたのでdiv の閉じ忘れなどかな、
とも思っていたのですが、表示が壊れるという感じではなく、完全に出力内容が間違っている(一つの記事の中身が突然表示されている)
状態でしたが、数あるforreach文に
wp_reset_postdata();
が抜けていることに気がつき
<?php endforeach;
wp_reset_postdata(); ?>
をつけることで無事表することができました。
最後にwp_reset_postdataでリセットを行います。wp_reset_postdata()は、$wp_queryオブジェクトが保持している$postをグローバル変数のpostにセットし直すことで、ループ開始前の状態にもどす処理をしています。続けてループを記述する場合以外は必要ないかもしれませんが、不具合を防止するために常に記述するのがよいでしょう。