在第三次迭代或查询循环项用完时创建Div包装器

时间:2014-07-10 作者:Ryan Dennler

我遇到了一个问题。。我已经在循环中编写了一段代码,这样循环中每三次迭代就会创建一个新的框。它很好地做到了这一点,但是,例如,如果我在返回的帖子的完整查询中有4个项目,它会在第4个项目上中断,因为当它再次重置为1时(在第3次最终迭代中创建end div标记,然后重置回1),它不知道如何创建并结束第4个帖子项目上的第2个框。有没有办法,如果查询中没有更多的帖子可以创建end div标记,即使只剩下1个?如果这有意义的话。。

<?php if($i%3 == 0){ ?>
<div id="featured-boxes">

<div class="itembox hightlighted-front" itemtype="http://schema.org/Person" itemscope="">
    <h1 itemprop="name" class="icon-search-item">Featured Accident Lawyers</h1>

    <div class="itemboxinner">
        <div class="post clearfix">
<?php } ?>

            <?php /*echo "$i" . "<br>"; */?>
            <div class="thumbnail-large box-<?php echo $i; ?>" style="float: left;">
                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"> <img
                itemprop="image" src="<?php echo $PPT->Image($post->ID, "url", "&amp;w=180&amp;h=128"); ?>" class="listImage"
                alt="<?php the_title(); ?>" title="<?php the_title(); ?>"/> </a>

                <div class="info"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div>
            </div>

            <?php $i++; ?>

<?php if($i%3 == 0) {  ?>
        </div>
    </div>
</div>
</div>

<?php } ?>

<?php if($i == 3){ ?><div class="clearfix"></div><?php } ?>

1 个回复
最合适的回答,由SO网友:Milo 整理而成

在循环外部放置一个单独的框打开和关闭标记,然后使用内置的循环变量仅在每第三次发布时关闭/打开一个新框,而不是最后一次current_postpost_count

if( ( ( $your_query->current_post + 1 ) % 3 == 0 )
    && ( $your_query->current_post + 1 ) != $your_query->post_count ){
        // close the box and open a new one.
}
编辑-请注意,我们将1添加到current_post 在每个测试中,从0开始,而不是从1开始。

结束

相关推荐

在WordPress之外使用PHP检索帖子的特色图片

我有一个小小的Windows应用程序,我希望能够使用我网站上帖子的特色图片。我的网站列出并审查电脑游戏的修改,应用程序会安装这些修改。对于那些知道蒸汽是什么的人来说,可以把它看作是一种非常基本的蒸汽。当用户在我的网站上安装文件修改后,我希望应用程序访问该网站,搜索该文件,然后在应用程序中使用特色图像。我知道大部分内容都超出了这个线程的范围,但是有没有一种方法可以使用PHP在WordPress之外找到图像的URL?也许是从post ID。