如果循环在最后一页上有奇数个帖子,则自定义其中最后一个帖子的样式

时间:2013-03-09 作者:Adam Azad

我的循环使用此php在两列中显示帖子

<?php
if (have_posts()): while (have_posts()) : the_post();
 $count++;
?>
    <?php  if ($count == 1) : ?>
    <div class="home-ci-row">

    <div style="padding: 0px;" class="main-column-item-wrap">
    CONTENT OF POST : Title, Thumbnail, Excerpt... etc
    </div>

    <div class="home-ci-gap"></div><!-- /* the gap */ -->

    <?php elseif ($count == 2) : ?>    

   <div style="padding: 0px;" class="main-column-item-wrap">
   CONTENT OF POST : Title, Thumbnail, Excerpt... etc
   </div> <!-- main-column-item-wrap -->


</div><!-- /* home-ci-row*/ -->

<?php $count = 0; ?>

      <?php else : ?>
  WHEN THERE IS NO POSTS
<?php endif; endwhile; endif; ?>
您可以看到div“”在第一次计数时打开;在第二个中关闭。

因此,当我的循环有偶数个帖子时效果很好,但对于奇数,它不会关闭div

所以我的想法是:如果循环有偶数http://i.stack.imgur.com/Hu4Ua.png

如果循环有奇数个帖子http://i.stack.imgur.com/JjqzZ.png

我希望我的问题很清楚,

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

你可以做得容易得多。当您正在制作一个可以通过浮点实现的布局时,无需每秒声明一行。

在我的代码示例中,我只使用$count 确定HTML元素的类。结合显示的帖子总数。

如果职位总数$wp_query->post_count$count 总数是奇数,我给元素类fullwidth. 同样,我确定它是第一个还是第二个(请参见if语句)。

之后我需要做的就是为循环中的每个HTML元素输出相应的类。除了类之外,没有元素彼此不同。

我使用Modulo PHP中的运算符(% ) 确定奇数/偶数。它提供1 如果我使用$count % 2$count 很奇怪。如果您不确定此运算符,请阅读相关内容here.

因此,您的代码可能如下所示:

<?php
    $count = 0;
    if (have_posts()): while (have_posts()) : the_post();
        if ( ++$count == $wp_query->post_count && ( $wp_query->post_count % 2 ) == 1 ) {
            // if final count is reached AND final count is odd
            // full width item
            $postclass = "fullwidth";
            $opentag = \'\';
            $closingtag = \'</div>\';
        } else if ( ( $count % 2 ) == 1 ) {
            // if $count is odd it is the first item in a \'row\'
            $postclass = "halfwidth first";
            $opentag = \'<div class="home-ci-row">\';
            $closingtag = \'\';
        } else {
            // second item in a row
            $postclass = "halfwidth second";
            $opentag = \'\';
            $closingtag = \'</div>\';
        }
?>
    <?php echo $opentag; ?>
    <div class="main-column-item-wrap <?php echo $postclass; ?>">
    CONTENT OF POST : Title, Thumbnail, Excerpt... etc
    </div><!-- main-column-item-wrap -->
    <?php echo $closingtag; ?>

<?php endwhile; endif; ?>

结束

相关推荐

WP_LIST_PAGES-使用Walker定制输出顺序

我正在使用wp\\u list\\u页面创建导航菜单。不过,我在菜单顺序方面遇到了一个挑战,我正试图找到一种方法来更好地控制菜单的顺序。是否可以使用Walker自定义wp\\U list\\u页面输出的顺序?例如,我想检查wp\\u list\\u pages results中的给定页面是否有post_meta 的值page_x 然后对另一个页面执行相同的操作,如果没有规则匹配,则继续正常操作。