rodrigo
  • 0
Новичок

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

  • 0

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

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

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

    global $withcomments; $withcomments = true;
    
    • 0
  2. По умолчанию 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; ?>
    
    • 0
  3. Ответ Джона П. Блоха правильный. Комментарий будет загружаться только в том случае, если вы находитесь в единственном числе и в ленте комментариев. К счастью, мы можем переопределить это поведение, добавив дополнительный параметр в WP Query.

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

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

    $comments = get_comments('post_id='.$post->ID);
           foreach($comments as $comment) :
                   print_r($comment);
           endforeach;
    
    • 0

Оставить ответ

You must login to add an answer.