在特色帖子循环的第二个帖子中添加‘Last’类

时间:2013-06-16 作者:John Shaw

您好,我正在使用以下查询将两篇特色帖子拉到我正在构建的网站主页上。如何将最后一个类添加到它放到页面上的第二篇帖子中?

                <h3>Case Studies</h3>
            <?php $my_query = new WP_Query(\'post_type=casestudy&posts_per_page=2\');
                while ($my_query->have_posts()) : $my_query->the_post();
                $do_not_duplicate = $post->ID; ?>
                <div class="half">
                    <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
                    <p class="home-news-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
                    <?php the_excerpt(); ?>
                </div>
                <?php endwhile; ?>
谢谢约翰

2 个回复
SO网友:Milo

有几种方法可以做到这一点,包括递增和检查计数器变量。我更喜欢使用main和每个custom中的内置成员变量WP_Query.

这将为您提供循环中当前帖子的索引:

$my_query->current_post
请记住,它的索引为零,这意味着第一篇文章是0,第二篇文章是1,等等。。

这将为您提供查询返回的帖子数:

$my_query->post_count
所以我们把它们组合在一个if 语句来检查它是否是循环中的最后一篇文章。记住在此处向当前帖子添加1,因为它从零开始:

while ($my_query->have_posts()) : $my_query->the_post();

    $class = \'half\';
    if( ( $my_query->current_post + 1 ) == $my_query->post_count ){
        $class .= \' last\';
    }

    echo \'<div class="\' . $class . \'">\';
    // rest of your markup, etc..

endwhile;

SO网友:s_ha_dum

检查$my_query->current_post 你可以很容易地确定你在哪个岗位上。我用它来设置post类,然后用post_class 函数插入该类和所有默认值。

<h3>Case Studies</h3>
<?php $my_query = new WP_Query(\'post_type=post&posts_per_page=2\');
  while ($my_query->have_posts()) : $my_query->the_post();
    $do_not_duplicate = $post->ID; 
    $new_class = (1 === $my_query->current_post) ? \'half\' : \'\' ?>
    <div <?php post_class($new_class); ?>>
      <a href="<?php the_permalink(); ?>"><?php the_post_thumbnail(); ?></a>
      <p class="home-news-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></p>
      <?php the_excerpt(); ?>
    </div>
<?php endwhile;
请注意*->current_post 在开始索引0 所以1 是第二个帖子。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post