web-dev-qa-db-ja.com

コメントを取得し、ループに投稿を取得

特定のユーザーによる投稿を行い、これらの投稿に対するコメントも取得する必要があります。これまでのところ、投稿とコメントは取得できますが、正しく処理する方法がわからないのです。どの投稿に実際に属しているかに関係なく投稿...

だからここにコードがあります...他のものの内側のループ、私は今ではそれがあるべき方法であることをかなり確信しています...

だから私の場合の出力:投稿のリスト+各投稿は今までに行われたすべてのコメントを得る...

私はループに投稿+コメントのみを投稿したい(私は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 は引数の配列を受け入れます、あなたは整数を渡しています。

投稿に対するすべてのコメントを取得したい場合は、次のようにします。

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

すでにフォーマットされたコメントリストを取得するには、他のforeachサイクル(codexからのコード)の代わりに、 wp_list_comments() 関数を使用するほうが簡単です。

  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は引数の配列を受け入れます、あなたは整数を渡しています。

投稿に対するすべてのコメントを取得したい場合は、次のようにします。

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