如何在Wordpress的自定义循环中将特定类添加到第一篇文章

时间:2014-06-23 22:02:16

标签: php wordpress twitter-bootstrap loops foreach

首先发帖在这里请耐心等待:)我会尽可能清楚地解释我的问题,与其他可能想要和我一样的问题的人相关。

我想在我的Wordpress儿童主题中获得两个结果(基于Bootstrap,确切地说是Wordpress Bootstrap Master,320):

  1. 创建一个包含两个不同循环的双重结构,第一个具有最新的X帖子(4个用于精度)和特定格式,第二个循环包含剩余的帖子和另一个特定格式
  2. 在第一个循环中的第一个帖子中添加特定类别,其他帖子不会受到影响
  3. 要明确的是,我的目标是创建一个Bootstrap轮播,其中包含我的Loop的前4个帖子,然后将另一个作为普通博客设置。

    至于现在,我已经能够使用以下代码创建前4个帖子的自定义循环:

     <div class="carousel-inner">
                       <?php global $post; // required
                       $args = array('posts_per_page'=>4);
                       $custom_posts = get_posts($args);
                       foreach($custom_posts as $post) : setup_postdata($post); ?>
                       <div class="item"> 
                       <?php the_post_thumbnail('large'); ?>
                          <div class="carousel-caption">
                            <?php the_title(); ?>
                          </div>
                        </div>
                       <?php endforeach; ?>
                      </div>
    

    然后我将创建第二个循环“抵消”前4个帖子。显然我有一个更清洁的解决方案,因为我过去曾经使用它,所以如果你有一些建议,我不会抱怨。

    关于第二个问题,最复杂的问题,我做了一些研究,我发现了大量不同的解决方案。它们都没有工作,或者我可能没有以正确的方式将它们调整到上面的代码中(注意,我只是一个业余编码器,我很容易出错)。

    我的最后一次尝试就是这个:

     <div class="carousel-inner">
                       <?php global $post; // required
                       $args = array('posts_per_page'=>4);
                       $custom_posts = get_posts($args);
                       $isFirst = true;
                       foreach($custom_posts as $post) : setup_postdata($post); ?>
                       <?php echo '<div class="item'; ?> 
                       <?php if ( $isFirst = true ) {
                        echo ' active';
                        } else {
                        echo '';
                       } ?>
                       <?php echo '">'; ?>
                       <?php $isFirst = false; ?>
                       <?php the_post_thumbnail('large'); ?>
                          <div class="carousel-caption">
                            ...
                          </div>
                        </div>
                       <?php endforeach; ?>
                      </div>
    

    当然,我试着无济于事。

    你能帮帮我吗?我是一个狂热的学习者,我想了解WTF对我有误! ;)

    先谢谢你们,伙计们! :)

    克劳迪奥

1 个答案:

答案 0 :(得分:3)

以下行需要使用比较运算符。您目前正在不断向true分配$isFirst,而不是查看其实际价值。

if ( $isFirst = true )

应该是:

if ( $isFirst == true )

您可以阅读有关他们的更多信息in the PHP documentation