web-dev-qa-db-fra.com

Obtenir des commentaires de publication pour ID de publication avec WP_Query () et une boucle personnalisée?

( Note du modérateur: Le titre d'origine était "Y a-t-il un moyen d'obtenir des commentaires de publication par ID de publication sur une boucle personnalisée à l'aide de WP-Query ()?")

Salut! J'exécute une boucle personnalisée avec WP_Query , qui n'affiche qu'une publication d'une catégorie spécifique sur la page home.php , comme suit:

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

Est-il possible d'afficher des commentaires pour cet article en particulier? J'ai essayé d'inclure le modèle de commentaires dans la boucle et rien. Existe-t-il une fonction qui charge les commentaires d’une publication spécifique que je peux utiliser dans home.php ou ailleurs?

6
Rodrigo

Pour pouvoir utiliser le modèle de commentaires dans vos boucles, ajoutez

global $withcomments; $withcomments = true;
4
sorich87

Par défaut, WP_Query ne chargera les commentaires WITH THE QUERY que si vous êtes

  1. en regardant un fil de commentaires, ou
  2. regarder un article singular.

Votre requête n'entraînera pas automatiquement les commentaires car, en tant que liste de catégories (même s'il n'y en a qu'un), elle ne compte pas comme "singulier". Heureusement, il existe un moyen de contourner ce problème. Essentiellement, avant d'extraire le modèle de commentaires, vous devez récupérer les commentaires et les insérer dans l'objet de requête que vous utilisez:

<?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
John P Bloch

John P Bloch répond correctement. Les commentaires ne seront chargés que si vous êtes au singulier et sur le fil de commentaires. Heureusement, nous pouvons remplacer ce comportement en ajoutant un paramètre supplémentaire sur WP Query.

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

0
Jeg Bagus