2016-03-03 30 views
1

對於我的WP主題,我顯示了每個博客文章的評論。除了我的else聲明外,一切正常,我想這是因爲每個$post都計算頁面上的所有$comments,而不僅僅是它自己的。

所以這是我的PHP:

<?php 
    $args = array(
     'post_id' => $post->ID, 
     'status' => 'approve' 
    ); 
    $comments = get_comments($args); ?> 

     if (get_comments_number($comments)==0) { 
      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); 
      } else { 
       echo "<i>No Comments</i>"; 
    } ?> 

我試着用兩種不同的foreach語句,先用$評論:

<?php 
    foreach($comments as $comment) : 
     if (get_comments_number($comments)==0) { 
      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); 
      } else { 
       echo "<i>Inga kommentarer än</i>"; 
    } ?> 
    } endforeach; ?> 

使用$帖子:

<?php 
     foreach($posts as $post) : 
      if (get_comments_number($comments)==0) { 
       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); 
       } else { 
        echo "<i>Inga kommentarer än</i>"; 
     } ?> 
     } endforeach; ?> 

第二剛剛呈現「這篇文章受密碼保護,請輸入密碼以查看評論。」而不是include('intranet-comments.php');(它在評論之後被調用)。

回答

1

您應該將postID作爲參數傳遞給get_comments_number而不是註釋數組。檢查wp codex。 爲什麼你要在評論數爲0時顯示評論?

應該看起來像這樣:未測試。通過智能手機回覆

<?php 
$args = array(
    'post_id' => $post->ID, 
    'status' => 'approve' 
); 
    if (get_comments_number($post->ID)!=0) { 
      $comments = get_comments($args); 
      // and do something with commenzs 
     } else { 
      echo "<i>No Comments</i>"; 
} ?> 
+0

乾杯隊友,工作就像一個魅力 –