Получение комментариев к сообщению для идентификатора сообщения с помощью WP-запроса() и пользовательского цикла?


( Примечание модератора: Оригинальное название было "Есть ли способ получить комментарии к сообщению по идентификатору сообщения в пользовательском цикле с помощью WP-запроса()?")

Привет! Я запускаю пользовательский цикл с помощью WP_Query, который отображает только одно сообщение из определенной категории в 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 или где-нибудь еще?

Author: MikeSchinkel, 2010-10-21

4 answers

Чтобы иметь возможность использовать шаблон комментариев в своих циклах, добавьте

global $withcomments; $withcomments = true;
 4
Author: sorich87, 2010-10-22 13:25:53

По умолчанию WP_Query будет загружать комментарии С ЗАПРОСОМ только В том случае, если вы

  1. просмотр ленты комментариев или
  2. смотрю на предмет singular.

Ваш запрос не будет автоматически выводить комментарии, потому что в качестве списка категорий (даже если он только один) он не считается "единственным". К счастью, есть способ обойти это. В принципе, прежде чем использовать шаблон комментариев, вы должны извлечь комментарии и поместить их в объект запроса, который вы использование:

<?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; ?>
 1
Author: John P Bloch, 2010-10-22 12:47:01

Джон П.Блох ответил правильно. Комментарий будет загружаться только в том случае, если вы находитесь в единственном числе и в ленте комментариев. К счастью, мы можем переопределить это поведение, добавив дополнительный параметр в запрос WP.

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

 0
Author: Jeg Bagus, 2017-11-28 07:56:08

Нет необходимости в WP_Query или пользовательском цикле для комментариев. Вы можете просто получить комментарии к публикации в пользовательском цикле публикации или в WP_Query. В цикле у вас есть post_id. Используйте post_id для получения комментариев. Код написан ниже.

$comments = get_comments('post_id='.$post->ID);
       foreach($comments as $comment) :
               print_r($comment);
       endforeach;
 -2
Author: Talha, 2014-06-27 19:49:09