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

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

Вопрос

(Примечание модератора: Первоначальное название было: «Есть ли способ получить комментарии по публикации по идентификатору публикации на пользовательском цикле с помощью 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 или где -либо еще?

Это было полезно?

Решение

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

global $withcomments; $withcomments = true;

Другие советы

По умолчанию 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; ?>

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

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

Нет необходимости в WP_QUERY или пользовательском цикле для комментариев. Вы можете просто получить комментарии по публикации в Post Custom Loop или опубликовать 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