¿Obteniendo comentarios de publicación para ID de publicación usando WP_Query () y un bucle personalizado?

6

( Nota del moderador: El título original era "¿Hay alguna forma de obtener comentarios de publicación por ID de publicación en un bucle personalizado utilizando WP-Query ()?")

¡Hola! Estoy ejecutando un bucle personalizado utilizando WP_Query , que solo muestra una publicación de una categoría específica en la página home.php , así:

<?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; ?>

¿Hay alguna forma de que muestre comentarios para esa publicación específica? Intenté incluir la plantilla de comentarios dentro del bucle y nada. ¿Hay una función que carga los comentarios para una publicación específica que puedo usar dentro de home.php o en cualquier otro lugar?

    
pregunta Rodrigo 21.10.2010 - 18:31

4 respuestas

4

Para poder usar la plantilla de comentarios en sus bucles, agregue

global $withcomments; $withcomments = true;
    
respondido por el sorich87 22.10.2010 - 15:25
1

De forma predeterminada, WP_Query solo cargará comentarios CON LA CONSULTA si estás

  1. viendo un feed de comentarios, o
  2. mirando un elemento singular .

Su consulta no tiraría automáticamente de los comentarios porque, como una lista de categorías (aunque solo hay una), no cuenta como "singular". Afortunadamente, hay una manera de evitar esto. Básicamente, antes de tirar de la plantilla de comentarios, debes buscar los comentarios y colocarlos en el objeto de consulta que estás utilizando:

<?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; ?>
    
respondido por el John P Bloch 22.10.2010 - 14:47
0

La respuesta de John P Bloch es correcta. El comentario solo se cargará si estás en singular & en la alimentación de comentarios. Afortunadamente, podemos anular este comportamiento agregando un parámetro adicional en la consulta WP.

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

    
respondido por el Jeg Bagus 28.11.2017 - 08:56
-2

No se necesita WP_Query o bucle personalizado para comentarios. Solo puedes recibir comentarios en post personalizado o publicar WP_Query. En bucle tienes el post_id. Utilice post_id para obtener comentarios. El código se escribe a continuación.

$comments = get_comments('post_id='.$post->ID);
       foreach($comments as $comment) :
               print_r($comment);
       endforeach;
    
respondido por el Talha 06.05.2014 - 12:44

Lea otras preguntas en las etiquetas