Php 如何在每10分钟关闭一个div?
我需要下面的X3Php 如何在每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>
<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>';
}