web-dev-qa-db-fra.com

obtenir des commentaires et obtenir des messages en boucle

Je dois obtenir des messages rédigés par des utilisateurs spécifiques et obtenir également des commentaires sur ces messages. Jusqu'à présent, je peux obtenir les messages et les commentaires, mais je ne sais pas comment le faire correctement, car les mêmes commentaires sont affichés pour chaque poste, peu importe à quels postes ils appartiennent réellement à ...

Alors voici le code ... en boucle dans un autre, je suis maintenant tout à fait sûr que c'est comme ça que ça devrait ...

Donc la sortie dans mon cas: liste des posts + chaque posts récupère TOUS les commentaires qui ont déjà été faits ...

Je veux obtenir post + seulement ses commentaires dans une boucle (je ne mettrai que php)

        <?php $posts = get_recent_posts_by_author_role('tenant');
                        foreach($posts as $post) {
                            $title=$post->post_title;
                            $perma_link=get_permalink($post->ID);
                            $img_post=get_the_post_thumbnail($post->ID);
                            $author_name=$post->post_author;
                            $content_post=$post->post_content;
                            $date=$post->post_date;
                            $content_style="comment_text"; 

                        ?>

<?php $comment=get_comments($post->ID);
                                foreach($comment as $com){

                                    $com_author=$com->comment_author;
                                    $com_date=$com->comment_date;
                                    $com_content=$com->comment_content;
                                    global $authordata;
                                    $author_roles=$authordata->roles;
                                    ?>

<?php  }?>
<?php  }?>
3
user2745423

get_comments accepte un tableau d'arguments, vous passez un entier.

Si vous souhaitez récupérer tous les commentaires pour une publication, utilisez:

get_comments( array('post_id' => $post->ID, 'status' => 'approve') );

Pour obtenir une liste de commentaires déjà formatée, il est plus simple d’utiliser la fonction wp_list_comments() au lieu d’un autre cycle foreach (code issu du codex):

  echo '<ol class="commentlist">';
  //Gather comments for a specific page/post 
  $comments = get_comments(array(
    'post_id' => $post->ID,
     'status' => 'approve'
  ));
  wp_list_comments(array(
    'per_page' => 10, // Allow comment pagination
     'reverse_top_level' => false //Show the latest comments at the top of the list
   ), $comments);
  echo '</ol>';
5
gmazzap

get_comments accepte un tableau d'arguments, vous passez un entier.

Si vous souhaitez récupérer tous les commentaires pour une publication, utilisez:

get_comments( array('post_id' => $post->ID, 'status' => 'approve') );
To get an already formatted comment list, is easier use the wp_list_comments() function, instead of another foreach cycle (code from codex):

  echo '<ol class="commentlist">';
  //Gather comments for a specific page/post 
  $comments = get_comments(array(
    'post_id' => $post->ID,
     'status' => 'approve'
  ));
  wp_list_comments(array(
    'per_page' => 10, // Allow comment pagination
     'reverse_top_level' => false //Show the latest comments at the top of the list
   ), $comments);
  echo '</ol>';
0