Quelle est la meilleure façon d'utiliser <?php the_post_thumbnail();?>
dans ma boucleMAISseulement afficher une vignette sur le message FIRST? Cela signifie-t-il que seule la première publication de la boucle aura son image?
Voici un exemple de boucle qui montre l'image de TOUS les messages:
<!-- 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>
Je vous remercie!
Code:
<!-- 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>
Ce code dans votre modèle affichera la vignette du message uniquement pour le premier message:
<?php
! isset ( $loop_first ) and the_post_thumbnail();
$loop_first = 1;
?>
C'est ce que j'utilise dans mes projets et cela fonctionne bien pour moi. J'ai modifié le code que vous avez fourni pour convenir. Déposez-le simplement et la vignette du message ne sera affichée que pour le premier message.
<!-- 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; ?>
Il suffit de vérifier la valeur current_post
global $wp_query; // get the global query - works in custom queries too
if(0 == $wp_query->current_post){ /**is the first post**/ }