是否仅在循环中的第一个帖子上显示缩略图?

时间:2011-03-25 作者:OneFishTaco

最好的使用方法是什么<?php the_post_thumbnail();?> 在我的循环中BUT 仅在第一篇文章上显示缩略图?意思是,只有循环中的第一个帖子才会显示其图像?

Here is an example of a loop that shows the image for ALL posts:

<!-- Start the Loop. -->
 <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
 <!-- Display the Title as a link to the Post\'s permalink. -->
 <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<!-- Display the posts Image thumbnail for the post -->
<?php the_post_thumbnail();?>
 <!-- Display the date and a link to other posts by this posts author. -->
 <small><?php the_time(\'F jS, Y\') ?> by <?php the_author_posts_link() ?></small>
 <!-- Display the Post\'s Content in a div box. -->
 <div class="entry">
   <?php the_content(); ?>
 </div>
谢谢大家!

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

在循环之前(while之前)添加一个变量,例如$first=true

  • 在循环内为此变量添加检查使用后,更改标志代码:

    <!-- Start the Loop. -->
     <?php $first = true; ?>
     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
     <!-- Display the Title as a link to the Post\'s permalink. -->
     <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    <!-- Display the posts Image thumbnail for the post -->
        <?php if ( $first ): ?>
          <?php the_post_thumbnail();?>
          <?php $first = false; ?>
        <?php endif; ?>
     <!-- Display the date and a link to other posts by this posts author. -->
     <small><?php the_time(\'F jS, Y\') ?> by <?php the_author_posts_link() ?></small>
     <!-- Display the Post\'s Content in a div box. -->
     <div class="entry">
       <?php the_content(); ?>
     </div>
    

  • SO网友:fuxia

    模板中的此代码将仅显示第一篇文章的文章缩略图:

    <?php 
        ! isset ( $loop_first ) and the_post_thumbnail();
        $loop_first = 1;
    ?>
    

    SO网友:Dwayne Charrington

    这是我在项目中使用的,它对我很有效。我修改了您提供的代码以适应。只需将其放入,它将仅显示第一篇文章的文章缩略图。

    <!-- Start the Loop. -->
     <?php $i = 1 ; ?>
     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>
     <!-- Display the Title as a link to the Post\'s permalink. -->
     <h2><a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
    <?php if ($i == 1): ?>
    <!-- Display the posts Image thumbnail for the post -->
    <?php the_post_thumbnail();?>
    <?php endif; ?>
     <!-- Display the date and a link to other posts by this posts author. -->
     <small><?php the_time(\'F jS, Y\') ?> by <?php the_author_posts_link() ?></small>
     <!-- Display the Post\'s Content in a div box. -->
     <div class="entry">
       <?php the_content(); ?>
     </div>
    <?php $i++; endwhile; endif; ?>
    

    SO网友:Maxwell s.c

    只需检查current_post 价值

    global $wp_query; // get the global query - works in custom queries too
    if(0 == $wp_query->current_post){ /**is the first post**/ }
    

    结束

    相关推荐

    Paging in a sidebar mini loop

    我切换到了另一个主题,并决定用其中的一些默认代码制作一个小部件,在自定义循环中显示我的美味帖子、推特帖子、su帖子和youtube视频(不包括主循环中的这些类别)。但是现在。。。分页不再工作。我制作了这个小部件:// =============================== EDL Sidebar Posts Widget ====================================== class SidebarPosts extends WP_Widget { &#x