如何使用PHP基于不一致的图像块模式应用CSS类?
我一次显示一个星期的帖子,每个星期的每一天都会包含每个帖子的缩略图。提要的目标类似于下面的屏幕截图(括号表示一篇文章及其各自的文章计数) 正如你所看到的,我每天发布的帖子数量参差不齐。我不知道我会发表多少篇文章。我希望能够应用一个CSS类(在下面的代码片段中,您会看到我将CSS类称为“margin”),这将在我的CSS中使用,以便我可以将margin应用于所有中心图像 图中每行最多有3个图像(即3列:左、中、右);但是,它可以有无限数量的行。我希望能够将这个“空白”类应用到中间列中的所有帖子。 我开始编写代码,说明这是如何实现的,但我不知道如何将该类仅应用于所有中间职位。一位朋友告诉我使用模数,但不知道如何正确地实现它。如果您需要进一步的澄清,请告诉我 请看我制作的这个图的屏幕截图,它有助于描述我希望实现的目标。我认为这将帮助您更好地理解这个问题:如何使用PHP基于不一致的图像块模式应用CSS类?,php,wordpress,modulus,Php,Wordpress,Modulus,我一次显示一个星期的帖子,每个星期的每一天都会包含每个帖子的缩略图。提要的目标类似于下面的屏幕截图(括号表示一篇文章及其各自的文章计数) 正如你所看到的,我每天发布的帖子数量参差不齐。我不知道我会发表多少篇文章。我希望能够应用一个CSS类(在下面的代码片段中,您会看到我将CSS类称为“margin”),这将在我的CSS中使用,以便我可以将margin应用于所有中心图像 图中每行最多有3个图像(即3列:左、中、右);但是,它可以有无限数量的行。我希望能够将这个“空白”类应用到中间列中的所有帖子。
<section class="post-by-date">
<?php
$day_check = '';
$today = get_the_date();
$year = date('Y');
$week = date('W');
$news_query = new WP_Query('category_name=main&year=' . $year . '&w=' . $week);
while ($news_query->have_posts()) : $news_query->the_post();
$day = get_the_date('j');
if ($day != $day_check) {
echo "<h3>" . get_the_date() . "</h3>";
}
$post_count = $news_query->current_post;
$found_posts = $news_query->found_posts;
if ($post_count % 3 == 0) {
$apply_css_margin = TRUE;
}
else {
$apply_css_margin = FALSE;
}
?>
<article id="post-<?php the_ID(); ?>" <?php if($apply_css_margin) { post_class('margin'); } else { post_class(); } ?>>
<a href="<?php the_permalink(); ?>">
<?php the_post_thumbnail('featured'); ?>
</a>
</article>
<?php $day_check = $day; endwhile; ?>
</section>
如果不仔细看一下,您似乎采取了正确的常规方法,但需要的是$post\u count%3==2
,因为您也需要中间的方法,所以最好不要在CSS类名中包含格式,在这种情况下甚至更好,由于顺序可以由CSS理解的机制决定,如果你不关心支持IE8,你可以使用类似于section.post-by-date>article:nth-child(2){font-style:italic;}
,并避免添加一个类。@BrettZamir-我最初尝试使用nth-child;然而,由于每天发布的帖子数量参差不齐,这一问题开始发挥作用。所以第n个孩子通常会工作一段时间,但当我向下滚动列表时,模式最终会中断,因此这似乎不可能…即使您使用3n+2
作为表达式(我应该在上面发布)?如果这不起作用,我不确定你在做什么(而且3n+2
也符合我上面的$post\u count%3==2
建议)。@BrettZamir-刚刚尝试使用第n个孩子(3n+2),但这似乎不符合模式……我更新了一个屏幕截图,上面显示了帖子布局的样子。正如您所看到的,这个场景(因为我只展示了1周的帖子)可以是任何形式的——取决于我当天发布的帖子数量。