Count 除最后一篇博文外,每两篇博文执行一次操作
我用下面的方法为每两篇文章制作一张幻灯片Count 除最后一篇博文外,每两篇博文执行一次操作,count,slideshow,wordpress,Count,Slideshow,Wordpress,我用下面的方法为每两篇文章制作一张幻灯片 <?php $i = 0; $slideshow_query = new WP_Query("showposts=6&cat=10"); ?> <div id="slideshow-posts"> <div class="newslide"> <?php while ($slideshow_query->have_posts()) : $slideshow_query->
<?php $i = 0; $slideshow_query = new WP_Query("showposts=6&cat=10"); ?>
<div id="slideshow-posts">
<div class="newslide">
<?php while ($slideshow_query->have_posts()) : $slideshow_query->the_post(); $do_not_duplicate = $post->ID; $i++; ?>
//my content
<?php if ($i == 2) { ?></div> <div class="newslide"><?php $i = 0; } ?>
<?php endwhile; ?>
</div>
//我的内容
问题是它在结尾处创建了一张空白幻灯片——我如何让它每隔两篇帖子(或每一篇偶数帖子)创建一张新闻幻灯片(上一次偶数帖子除外)
谢谢您可能要查找的运算符称为模或模,并返回除法的余数:
$foo = 5 % 3; // 5 = 1*3 + a remainder of 2
$bar = 17 % 5; // 17 = 2*5 + a remainder of 2
$baz = 42 % 6; // 42 = 7*6 + a remainder of 0
当与2的除数一起使用时,此运算符可方便地识别循环中的偶数/奇数行:
0 % 2 => 0
1 % 2 => 1
2 % 2 => 0
3 % 2 => 1
4 % 2 => 0
…
或者在您的情况下,类似这样的情况:
<?php $i = 0; $slideshow_query = new WP_Query("showposts=6&cat=10"); ?>
<div id="slideshow-posts">
<div class="newslide">
<?php while ($slideshow_query->have_posts()) : $slideshow_query->the_post(); ?>
//my content
<?php if ($i % 2 == 0): /* even: */ ?>
</div><div class="newslide">
<?php elseif ($i+1 == $slideshow_query->post_count): /* last: */ ?>
</div>
<?php endif; ?>
<?php $i++; /* iterate in the end */ ?>
<?php endwhile; ?>
</div>
//我的内容
为了找出您是否已到达最后一篇文章,您可以将$i+1
(因为我们从0开始计数)与您的查询返回的全部项目进行比较(在您的示例中最多6个)。然后关闭
,如果它们匹配
更新
根据我的评论,我扩展了上面的例子。这没有经过测试,但我相信这就是我记忆中的工作方式(即post计数)。@polarbear-谢谢-但这对我来说并不起作用。我设置了
$I=+1
,但不知道如何摆脱最后一张幻灯片。我试过并elseif($I==6):?>
但这对我来说不起作用。最后我只是简单地做了,所以只需为2 4和6篇文章设置if条件,尽管我认为更灵活的东西会更好。$I==6
不起作用,因为在6篇文章中,$I
永远不能超过5,如果你从0开始计算的话。这就是为什么您要进行比较,例如,$i+1==6
,或者如果您想让它更具动态性,$i+1==$post\u count
,其中$post\u count
是查询返回的帖子数量。我相信它的工作原理类似于$slideshow\u query->post\u count
。我将更新我的示例。