Php 如何在每10分钟关闭一个div?

Php 如何在每10分钟关闭一个div?,php,wordpress,Php,Wordpress,我需要下面的X3 <div class="row> <div class="col"> <div class="carousel"> <div class="carousel-cell"></div> <div class="carousel-cell"></div> <div class="carousel-cell"></div>

我需要下面的X3

<div class="row>
  <div class="col">
    <div class="carousel">
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
      <div class="carousel-cell"></div>
    </div>
  </div>
</div>
这是我的看法

$rows = 0;
$numPost = 0;
while($rows < 2 ) {
    echo '<div class="row"><div class="col"><div class="carousel">';
    $posts = get_posts( array(
        'post_type' => 'post',
        'posts_per_page' => -1,
    ) );
    foreach ( $posts as $post ) {
    ?>
        <div class="carousel-cell">
            //content....
        </div>
    <?php
        $numPost++;  
        if($numPost % 10 == 0) {
            $numPost = 0;
            echo '</div></div></div><div class="row"><div class="col"><div class="carousel">';
        }  
    }
    echo '</div></div></div>';
    $rows++; 
    if($rows = 3) {
        break;
    }
}
但在这三行的末尾,它给了我一个空行,如下所示:

<div class="row>
  <div class="col">
    <div class="carousel"></div>
  </div>
</div>

首先检查您的最后一个if语句,它将是:

    if($rows == 3) {
    break;
}
而不是:

    if($rows = 3) {
    break;
}

整个break语句是多余的,因为循环只在$rows<2时运行,所以只要$rows达到3,while循环条件就会中断,循环就会停止。似乎没有什么理由使循环不起作用

我测试了代码,但将while条件替换为while$rows<3,以满足您的三倍条件。我搬走了

if($rows = 3) {
   break;
}

因为这是不必要的。

不重复行的关键是在关闭标记时不要重新打开它们。您将希望在循环开始时进行相同的检查,以打开标记,就像稍后关闭标记一样。循环结束后,您需要再次检查,以避免两次关闭div

$rows = 0;
$numPost = 0;
while($rows < 2 ) {

    $posts = get_posts( array(
        'post_type' => 'post',
        'posts_per_page' => -1,
    ) );
    foreach ( $posts as $post ) {
        if($numPost % 10 == 0) {
            echo '<div class="row"><div class="col"><div class="carousel">';
        }
        ?>
        <div class="carousel-cell">
            //content....
        </div>
        <?php
        $numPost++;
        if($numPost % 10 == 0) {
            $numPost = 0;
            echo '</div></div></div>';
        }
    }
    if($numPost %10 != 0) {
        echo '</div></div></div>';
    }

    $rows++;
    if($rows = 3) {
        break;
    }
}

我试过了,但是如果我给它,那么它就不会坏。如果我去掉这个坏,它会继续运行,并且不会在3点停止。保持休息,它会根据问题放置一个空行。这是一个评论,顺便说一句,不是回答。不断重复行。我不能评论一篇不是我自己的文章。我的声誉太低,所以我除了作为答案发表之外,什么都不能做。我在用翻译程序运行了三次后编辑了答案,我得到了结果;启用错误报告。这还可以通过将赋值运算符更改为比较来实现。我只是不能使用get_帖子,所以我不得不删除它。这是一个WordPress函数,所以我添加了该标记。@FunkFortyNiner yea忘记了wp标记。我从HTML source://content中得到了这个//内容//内容//所容纳之物因此,我认为在这里可能失败的也是get_帖子。当你在$numpost支票中关闭div时,不要重新打开它。相反,不要重置$numpost,在循环开始时执行相同的检查,并回显开头的div。或者为$closed_div创建一个标志,并在关闭div时将其重置,以便可以在循环的顶部重新打开它。循环结束后,您需要进行同样的检查,这样就不会两次关闭div。@aynber一个代码示例对未来的用户也会有很大帮助谢谢!使用了代码的第一位,并且有意义。谢谢,如果$rows=3{即使我们在做$rows<2的事情,你知道我们为什么需要这样做吗{还有为什么我们需要=3而不是==3?你根本不需要它,特别是因为你在增加$rows。目前,它所做的是在第一次迭代后停止,因为你将$rows重新分配给了3。从看起来的情况来看,现在你需要通过get_posts重复3次,所以你可能一次都不需要行检查L.试着把它去掉,但我重复了一遍,它没有坏,不管怎样,它工作得很好。。
    $closed_div = true;
    foreach ( $posts as $post ) {
        if($closed_div) {
            echo '<div class="row"><div class="col"><div class="carousel">';
            $closed_div = false;
        }
        ?>
        <div class="carousel-cell">
            //content....
        </div>
        <?php
        $numPost++;
        if($numPost % 10 == 0) {
            $numPost = 0;
            echo '</div></div></div>';
            $closed_div = true;
        }
    }
    if(!$closed_div) { // Div has not been closed
        echo '</div></div></div>';
    }