【问题标题】:How to add a specific class to the first post in a custom loop in Wordpress如何在 Wordpress 的自定义循环中将特定类添加到第一篇文章
【发布时间】:2014-08-14 01:06:22
【问题描述】:

第一次在这里发帖,所以请耐心等待 :) 我会尽可能清楚地解释我的问题,以便与可能与我有同样问题的其他人相关。

我想在我的 Wordpress 子主题中获得两个结果(准确地说,基于 Bootstrap,Wordpress Bootstrap Master by 320):

  1. 创建一个包含两个不同循环的双重结构,第一个循环包含最近的 X 个帖子(4 个,用于精确度)和特定格式,第二个循环包含剩余帖子和另一个特定格式
  2. 在第一个循环的第一个帖子中添加特定类别,其他帖子保持不变

明确地说,我的目标是创建一个带有我循环的前 4 篇文章的 Bootstrap 轮播,然后将另一个样式设置为普通博客。

就目前而言,我已经能够使用以下代码创建包含前 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 对我来说是错的! ;)

在此先感谢大家! :)

克劳迪奥

【问题讨论】:

    标签: php wordpress twitter-bootstrap loops foreach


    【解决方案1】:

    以下行需要使用比较运算符。您目前一直在将true 分配给$isFirst,而不是检查它的实际值。

    if ( $isFirst = true )
    

    应该是:

    if ( $isFirst == true )
    

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

    【讨论】:

    • 非常感谢,这显然是一个愚蠢的问题,但有时我会迷失在微小的细节上。现在它似乎工作正常。竖起大拇指:)
    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多