wordpress - 仅在同一 div 中包装两个帖子 - WP While 循环
问题描述
我正在设置新的 while 循环,我想如何在我的代码下面进行管理
<div class="item">
first post
</div>
<div class="col">
<div class="item">
second post
</div>
<div class="item">
Third post
</div>
</div>
<div class="item">
fourth post
</div>
感谢您的帮助
解决方案
这并不难,你需要一些像 $i 这样的增量,还有一些像这样的 if 语句:
<?php
$i = 0;
while( something ):
if ( $i%2 == 0 ) { echo '<div class="col">'; }
?>
<div class="item">
some post
</div>
<?php
if ( $i%2 == 1 ) { echo '</div>'; }
$i++; endwhile;
?>
上面的代码将获取您的数据(帖子),如果它是两个中的第一个,我将在它前面加上“col”,如果它是两个中的第二个,它将关闭 div。我不确定这是否是您想要的,如果不告诉我:D
编辑:当我查看您的示例时,我可以稍微编辑上面的代码,以便为您提供作为示例的确切结果,因此我们不需要在“col”中包含第一篇文章,因此我们需要做出包含第二篇文章并首先离开的声明:
if(i$%4 == 1) { echo '<div class="col">'; }
之后我们想在第三次发布后关闭“col”,所以:
if ( $i%2 == 2 ) { echo '</div>'; }
所以:
- 当
$i = 0
(第一个元素)我们什么都不做 - 当
$i = 1
(第二个元素)我们用类“col”创建div - 当
$i = 2
(第三个元素)我们在打印我们的帖子之后关闭“col” - 当
$i = 3
(第四个元素)我们什么都不做
我相信你现在可以见到校长了 :D 让我知道我是否可以提供更多帮助
所以最终代码(例如用“纯” php 编写)应该如下所示:
<?php
if( have_posts ):
$i = 0;
while( have_posts ): the_post;
if ( $i%2 == 0 ) { echo '<div class="col">'; }
echo '<div class="item"> some post </div>';
if ( $i%2 == 1 ) { echo '</div>'; }
$i++; endwhile;
?>
这是我相信可以解决您的问题的版本:
<?php
if( have_posts ):
$i = 0;
while( have_posts ): the_post;
if ( $i == 1 ) { echo '<div class="col">'; }
echo '<div class="item"> some post </div>';
if ( $i == 2 ) { echo '</div>'; }
$i++; endwhile;
?>
上面的代码将计算循环的迭代次数并将第二个和第三个帖子包装在“col”中。
推荐阅读
- css - 如何将所有 scss 文件编译到所需路径
- java - 为什么 Quarkus 不扫描 JakartaEE bean?
- java - 我正在自动化一个百思买应用程序。我收到了一种邮件 ID 弹出窗口如何解决它
- java - 将目标 SDK 从 28 更改为 29 导致 BLE 扫描不起作用
- c++ - 防止 C++ 中矢量化的数学函数
- javascript - 自动化 windows Chrome 异常 selenium
- azure - 当存在带有转换的数据流活动时,Azure 数据工厂转换管道的执行时间超过 5 分钟
- multithreading - Julia Threads.@threads 比单线程性能慢
- php - 验证他的电子邮件后将用户重定向到新页面 laravel
- vue.js - 如何使用 Vuetify 将两个文本字段放在同一行?