サポート » 使い方全般 » トップページの記事一覧にコメントも表示したい

  • index.php内で <?php have_comments() ?> とやっても false が帰ってきてしまい、コメントを取得することができません。

    <?php while (have_posts()): ?>
      <?php while ( have_comments() ) : ?>
        <?php comment_text(); ?>
      <?php endwhile; ?>
    <?php endwhile; ?>

    have_comments() は single.php 内でしか使用出来ないのでしょうか?
    だとすれば、コメントをindex.phpのループ内に表示するにはどのようにしたら良いでしょうか?

    ご教授いただけましたら幸いです。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • モデレーター jim912

    (@jim912)

    akipanmanさん、こんにちは。

    index.php、single.phpに関わらず、そのままではhave_commentsは使えません。

    comments_template関数を実行する際、テンプレートを読み込む直前にコメントの取得をするような仕組みとなっているので、それ以降でないとhave_commentsは使えないのです。

    index.phpでコメントを表示する方法ですが、

    <?php $withcomments = true; comments_template(); ?>

    と記述いただければ、投稿やページ以外のテンプレートでもコメントが表示されるようになります。
    デフォルトのコメントテンプレートだと不都合な場合は、

    <?php $withcomments = true; comments_template( '/index_comments.php' ); ?>

    とパラメータを指定すれば、任意のテンプレートを利用することが可能です。

    あるいは、

    <?PHP if ( $comments = get_approved_comments( $post->ID ) ) : ?>
    <ol class="commentlist">
    	<?php wp_list_comments();?>
    </ol>
    <?php endif; ?>

    と、index.php内で完結させてしまうことも可能です。
    (上記例では、ログイン状態にかかわらず承認済みのコメントしか表示されませんが。。。)

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「トップページの記事一覧にコメントも表示したい」には新たに返信することはできません。