Wordpress后循环添加类

时间:2016-03-22 09:08:52

标签: php wordpress loops

我正在使用以下代码在我的网站上使用Wordpress标记构建精选帖子部分(标记为“精选”的3条最新帖子显示在主页上):

                        <?php

                            $args=array(
                              'tag' => 'featured',
                              'showposts'=>3,
                              'caller_get_posts'=>1
                            );
                            $my_query = new WP_Query($args);
                            if( $my_query->have_posts() ) {
                              while ($my_query->have_posts()) : $my_query->the_post(); ?>
                              <div class="featured-article">
                                <!--thumbnail, title and link code here -->
                              </div>
                               <?php
                              endwhile;
                            } //if ($my_query)
                          wp_reset_query();  // Restore global post data stomped by the_post().
                        ?>

每个条目都包含“精选文章”,但由于我希望第一个帖子是全宽和其他2个半宽,我想知道如何为它们添加适当的类? 所以,第一个帖子得到“全宽”类,另外两个“半宽”......

如果我没有正确解释它(英语不是第一语言和所有语言),我道歉。

非常感谢任何帮助

2 个答案:

答案 0 :(得分:1)

您可以在循环中获得$ my_query-&gt; current_post的帖子索引。

$class = $my_query->current_post == 0 ? 'full-width' : 'half-width';

您可能还想确保该类仅应用于第一页的第一项

$class = $my_query->current_post == 0 && !is_paged() ? 'full-width' : 'half-width';

这是你的循环

 <?php

 $args=array(
     'tag' => 'featured',
     'showposts'=>3,
     'caller_get_posts'=>1
 );

 $my_query = new WP_Query($args);


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

     $class = $my_query->current_post == 0 && !is_paged() ? 'full-width' : 'half-width'; ?>

         <div class="featured-article <?php echo $class; ?>">

         </div>
     <?php
     endwhile;
 } //if ($my_query)

 wp_reset_query();  // Restore global post data stomped by the_post().
 ?>

答案 1 :(得分:0)

你可以用计数器来解决这个问题。

<?php
       $args=array(
         'tag' => 'featured',
         'showposts'=>3,
         'caller_get_posts'=>1
      );

      $my_query = new WP_Query($args);

      //add classes
      $counter = 0;
      $classes = '';

      if( $my_query->have_posts() ) {
          while ($my_query->have_posts()) : $my_query->the_post(); 
              $classes = $counter == 0 ? ' full-width' : ' half'; 
 ?> 
       <div class="featured-article<?php echo $classes; ?>">
           <!--thumbnail, title and link code here -->
       </div>
 <?php
              $counter++;
           endwhile;
      } //if ($my_query)

      wp_reset_query();  // Restore global post data stomped by the_post().
  ?>

或者您可以为添加课程制作自定义文件。