wordpressでコメントが表示されない時の対処法

2014年11月18日 wordpress


このサイトを作っている時に、

  • どう見てもcomments.phpの中の記述は間違っていないのに、コメントが表示されない!!
  • コメントの数はちゃんと表示されている!
  • 同じcomments.phpの中に書いた<?php comment_form(); ?>は表示されている!

という事態が発生し、丸1日色々しらべたり悩んだりした結果、思わぬところでアッサリと解決したので防備録的に残しておきます。

 

まず、comments.phpの中身です。

 

どう見ても間違っていませんよね?というか、間違いようがないですよね?
最初、この記述が悪いのかな~と思って散々悩みましたが、<?php comment_form(); ?>と書いた、コメント欄だけはちゃんと表示されていました。
また、コメントが取得されていないのかなと思い、コメント数を表示するコードを書き加えてみたところ、コメント数は無事に拾われていました。

 

なぜ、コメントだけが表示されないの!?

 

どうやら<?php wp_list_comments( ); ?>だけがおかしいんじゃないか、と当たりをつけて調べてみたところ、こちらで解決方法が紹介されていました。

Wordpreeフォーラム⇒https://wordpress.org/support/topic/have_comments-help

 

どうも、comments.phpではなく、出力先のsingle.phpのインクルードタグに問題があったようです。

私はコメントテンプレートを固定ページと投稿ページで分けようと思っていたので、コメントテンプレートをcomments.phpcomments-post.phpの2種類準備していました。

 

single.php

というインクルードタグを書いていたのですが、どうもwp_list_comments( );は、

このタグでないと動かないらしいのです!

なぜ<?php comments_template(); ?>じゃないと動かないのか、フォーラムのこちらのページで議論されていました。
「get_commentsなどを用いてコメントを取得し、得られた結果を第2引数として wp_list_comments に指定すれば、comments.php 以外でも使えます」だそうです。
http://ja.forums.wordpress.org/topic/23248

 

第2引数とかが難しそうだったので、コメントテンプレートを使い分けるのは諦め、おとなしくコメントテンプレートをcomments.phpひとつに絞りました。
single.phpのインクルードタグを

に書き換えたところ、あっさりとコメントが表示されました!


コメント

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


  1. […] 参考URL:http://cthuwebdice.session.jp/wordpress/wordpress-comment/ […]

カテゴリ

CONTACT

管理人:いのり

何かあればこちらよりお問い合わせください。

お問い合わせ