当前位置: 首页 > 知识库问答 >
问题:

PHP显示WHILE循环中的3列块

呼延英奕
2023-03-14

我试图建立一个网站(博客),模仿新www.digg.com网站的布局。

它由一个顶部全宽的柱子组成,柱子下面是3个列宽的区块。blocka all设置为特定宽度并向左浮动。

我正在构建的这篇文章的不同之处在于,它不只是顶部的文章是一篇全宽的特色文章,任何一行都可以显示一篇特色文章,这篇特色文章应该扩展页面的全宽,并向下推其他块。

问题是,如果一篇文章被指定为特色文章,而它不在左栏中,那么它就不会看起来正确。下图说明了如果一篇特色文章出现在第2或第3栏中会发生什么。

通过Wordpress帖子的WHILE循环,我计算并为每个帖子CSS类分配一个介于1到3之间的数字。示例<代码>

col-1=左立柱
col-2=中立柱
col-3=右立柱

有时,一篇文章也会有一个名为的CSS类。当一篇文章被指定为featured时,它将扩展3列的全宽,而不仅仅是1列。

只要特色帖子是结果集中的第一篇帖子,这一切都很容易做到。然而,在下图中,我已经指出了我的问题所在。如果我为每个帖子指定一个1-3的类列名,为特色帖子指定一个特色类列名,那么假设我正在迭代集合,并且我为一个通常类名为col-2col-3的帖子指定了一个characterizedCSS类,那么就有问题了。

下图显示了这个问题。在第3行,您可以看到如果我将一个特色类分配给第3行中心列(col-2)会发生什么

我需要以某种方式将类名col-1col-2col-3featured分配给while循环中的所有帖子,并确保featured帖子始终位于第1列位置。

我愿意接受任何关于如何实现这一目标的建议或帮助?

下面是PHP循环的示例代码。。。(注意:我还没有添加代码来检查特色帖子)

<?php
// Start our column count at 1
$column = 1;
while (have_posts()) : the_post();
    $col_class = 'post-col-' .$column;
?>

  <article <?php post_class($col_class); ?>>
      post content
  </article>

<?php
// Increase the Column count
$column++;
// After count has displayed 3, we reset the count
if($column == 4){
    $column = 1;
}
endwhile;
?>

共有1个答案

周弘毅
2023-03-14

只是认为你也可以持有一个元素,直到整行被填满。如果你有这样的帖子排序:

  1. 列表项
  2. 列表项
  3. 列表项
  4. 列表项
  5. 功能列表项
  6. 列表项
  7. 列表项

您可以像检测到某个特色项目一样循环浏览它们,并临时存储它,完成后显示它。如下所示:

<?php
$column = 1;
$featured_list = array();
while (have_posts()) : the_post();
  $col_class = 'post-col-' .$column;

  if(!$isfeatured) {
    echo '<article '.post_class($col_class).'>post content</article>';
  } else {
    $featured_list[] = '<article '.post_class($col_class).'>post content</article>';
  }

  // Increase the Column count
  $column++;
  // After count has displayed 3, we reset the count
  if($column == 4){
    $column = 1;
  // Print everything in the array, doing nothing if empty
  foreach ($featured_list as $featured_item) { 
    echo $featured_item;
  }
  // Reset the array
  $featured_list = array(); 
}
endwhile;
?>
 类似资料:
  • 此方法重复读取命令并执行它们,直到游戏结束。完成的变量为true时,表示玩家/用户点击了退出并想要结束游戏——从而退出循环并执行到方法结束。 但我观察到循环有一种奇怪的行为。它循环得非常好(省略以下行时显示stopWatch.getTime()的连续计数: 但是当我把它们放回去时,它会停止显示秒表的连续递增时间,因为它会朝着时间限制增加(在这一点上,它应该停止)。即使玩家没有输入任何命令或输入。

  • 主要内容:PHP 循环,while 循环,do...while 语句循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。 PHP 循环 在您编写代码时,您经常需要让相同的代码块一次又一次地重复运行。我们可以在代码中使用循环语句来完成这个任务。 在 PHP 中,提供了下列循环语句: while - 只要指定的条件成立,则循环执行代码块 do...while - 首先执行一次代码块,然后在指定的条件成立时重复这个循环 for - 循环执行代码块指定的次数

  • 本文向大家介绍浅谈php中的循环while、do...while、for、foreach四种循环,包括了浅谈php中的循环while、do...while、for、foreach四种循环的使用技巧和注意事项,需要的朋友参考一下 php中的while循环,循环执行代码块制定的次数,或者当指定的条件为真时循环执行代码块。 ----------------------------------------

  • 问题内容: 应该很基本,但是我无法使它正常工作。我有以下代码可以遍历mysqli查询: 它可以工作并返回: 变量#1 :(数组,3个元素)↵0(字符串):“ 4testtest”(9个字符)1(字符串):“ 1Hello world!Welcome to WordPress。这是您的第一篇文章。编辑或删除它,然后开始写博客!” (99个字符)2(字符串):“ 2Sample Page这是一个示例页

  • 问题内容: 我第一次不了解PHP。我一直在脚本中使用for循环,while循环,foreach循环。我想知道 哪一个性能更好? 选择循环的标准是什么? 当我们在另一个循环中循环时应该使用哪个? 我一直想知道要使用哪个循环的代码。 很明显,我可以使用while编写上面的代码。希望有人能帮助我找出哪个循环更适合使用。 问题答案: 哪一个性能更好? 没关系 选择循环的标准是什么? 如果只需要遍历对象或数

  • 我需要对while或do循环进行编码,以确定用户输入的数字是否在特定范围内(30