( モデレータのメモ: 元のタイトルは「WP-Query()を使用してカスタムループで投稿IDで投稿コメントを取得する方法はありますか?)
こんにちは!私は home.php ページの特定のカテゴリからの投稿を1つだけ表示するカスタムループ WP_Query を使用しています。
<?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はあなたがコメントをWITH THE QUERYでロードするだけです。
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; ?>
John P Blochの答えは正しいです。あなたが単数形の&コメントフィードにある場合にのみ、コメントがロードされます。幸い、WP Queryにパラメータを追加することでこの動作をオーバーライドできます。
'withcomments' => 1, 'feed' => 1