Wordpress Else语句在$ comments循环中不起作用

时间:2016-03-03 08:40:32

标签: php wordpress if-statement comments

对于我的WP主题,我正在为每个博客帖子显示评论。除了我的else语句之外,一切正常,我认为这是因为每个$post计算页面上的所有$comments,而不仅仅是它自己的。{/ p>

所以这是我的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语句,首先是$ comments:

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

使用$ posts:

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

刚刚渲染的第二个&#34;这篇文章受密码保护。输入密码以查看评论。&#34;而不是include('intranet-comments.php');(在评论后调用)。

1 个答案:

答案 0 :(得分: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>";
 } ?>