WordPressのテーマを開発している最中、以下のようなエラーがWebサイトの画面にズラッと出てきました。
Warning: count(): Parameter must be an array or an object that implements
Countable in /app/public/wp-includes/post-template.php on line 317 Warning:
ブラウザの画面はこんな感じです。
WordPressループをいじっている最中だったので、そのへんが原因だろうとあたりを付けて調べてみました。
その結果、the_post()関数を書き忘れていたことがわかりました。
the_post()は次の投稿を取得する関数ですが、これがないためにhave_post()がずっとtrueになっていたわけです。
そのため、whileループが無限ループになってしまい、その際に警告がたくさん出てしままいました。
<?php
if ( have_posts() ) :
while ( have_posts() ) :
//the_post(); ←この記述を忘れていた
the_content();
endwhile;
endif;
?>
なので、解決策はthe_post()関数をしっかり書くというだけです。
単純なミスですが、今後もやらかしそうなのね備忘録として記事にしておきます。
コメント