公開2014年7月20日(日)スポンサーリンクWordPressを改造中にコメントが表示されなくなる現象が発生しました。ものすごく単純なミスによるものなのですが、原因を調べるために少し時間を無駄にしてしまいました。ほとんどの人はやらかさないミスだと思うのですが、何かの役に立つこともあるかと思い記録しておきます。具体的に言うと、記事にコメントがあるかどうかを返すhave_comments()が、コメントがあるにも関わらずFALSEを返してくるために、コメントが表示されなくなるという現象が発生しました。だいたいのテーマでコメントの表示部分は以下のようなコードになっていると思います。endif;?&gt;1行目でコメントがあるかどうかを確認し、あるなら3行目のwp_list_comments()で各コメントを表示するわけです。この時、1行目のhave_comments()がTRUEでなければ2~3行目は実行されないのですが、have_comments()がFALSEを返してくるようになってしまったわけです。理由は単純なミスで、コメントの表示を行う前の段階で$postという変数をうっかり使ってしまっていたからでした。WordPressは個別記事を表示する際、データを$postに代入し、各所でグローバル変数として使います。コメントを表示する場合も同じで、have_comments()においても$postに別な値が代入されてしまっていては、コメントの有無を判定できなくなり、FALSEばかりが返ってくることになるというわけです。いうことで、$postに別な値を代入する処理を行っていた箇所を修正し、無事コメントが表示されるようになりました。コメントが表示されなくなる現象への対応というより、WordPressにおいて、$postという変数名を本来の目的以外で使うなという原則の話ですね。Comment名前メールアドレスコメントAboutプログラミング関係の覚書が中心ですが、そのほか気の向くままに雑多なことを記しています。