wp_query()とカスタムループを使用して、投稿IDの投稿コメントを取得しますか?

wordpress.stackexchange https://wordpress.stackexchange.com/questions/3141

質問

(モデレーターのメモ: オリジナルのタイトルは、「wp-query()を使用してカスタムループに投稿IDでコメントを投稿する方法がありますか?」でした。

やあ!カスタムループを実行しています wp_queryを使用します, 、それは、の特定のカテゴリから1つの投稿のみを表示します home.php ページ、そう:

<?php $pr_q = "cat=11&posts_per_page=1"; $pregunta_q = new WP_Query($pr_q); ?>
<?php while ($pregunta_q->have_posts()) : $pregunta_q->the_post(); ?>
    <!-- post stuff here -->
<?php endwhile; ?>

その特定の投稿にコメントを表示する方法はありますか?ループ内にコメントテンプレートを含めてみましたが、何もしませんでした。 Home.php内または他の場所で使用できる特定の投稿にコメントをロードする関数はありますか?

役に立ちましたか?

解決

ループでコメントテンプレートを使用できるようにするには、追加してください

global $withcomments; $withcomments = true;

他のヒント

デフォルトでは、wp_queryは、あなたがいる場合にクエリでコメントをロードするだけです

  1. コメントフィードを見る、または
  2. を見ています singular アイテム。

クエリはコメントを自動的に引き込みません。なぜなら、カテゴリのリストとして(1つしかない場合でも)「単数形」としてカウントされないからです。幸いなことに、これを回避する方法があります。基本的に、コメントテンプレートを引く前に、コメントを取得し、使用しているクエリオブジェクトにそれらを入力する必要があります。

<?php $pr_q = "cat=11&posts_per_page=1"; $pregunta_q = new WP_Query($pr_q); ?>
<?php while ($pregunta_q->have_posts()) : $pregunta_q->the_post(); ?>
  <!-- post stuff before comments here -->
  $comments = get_comments( array(
    'post_id' => $post->ID,
    'orderby' => 'comment_date_gmt',
    'status' => 'approve',
  ) );
  if(!empty($comments)){
    $pregunta_q->comments = $comments;
    $pregunta_q->comment_count = count($comments);
  }
  <!-- comment stuff here -->
<?php endwhile; ?>

ジョンPブロッホの答えは正しいです。コメントは、単数形とコメントフィードを使用している場合にのみロードされます。幸いなことに、WPクエリに追加のパラメーターを追加することにより、この動作をオーバーライドできます。

'withcomments' => 1, 'feed' => 1

コメント用のwp_queryまたはカスタムループは必要ありません。ポストカスタムループまたは投稿wp_queryに投稿コメントを取得できます。ループには、post_idがあります。 post_idを使用してコメントを取得します。コードは以下に書かれています。

$comments = get_comments('post_id='.$post->ID);
       foreach($comments as $comment) :
               print_r($comment);
       endforeach;
ライセンス: CC-BY-SA帰属
所属していません wordpress.stackexchange
scroll top