Pourquoi mon $featured_query
traite-t-il chaque message comme le premier? Suivre Les conseils de Pieter ici , et messages similaires, en utilisant le compteur de boucles intégré, je n’ai pas pu afficher l’extrait uniquement sur le premier message.
front-page.php
a une section de projets en vedette, appelant une partie de modèle:
<section id="featured">
<?php // Start custom loop
$args = array(
'post_type' => 'project',
'posts_per_page' => 5,
);
$featured_query = new WP_Query( $args );
while ( $featured_query->have_posts() ) : $featured_query->the_post();
get_template_part( 'template-parts/content-archive', 'project' );
endwhile;
wp_reset_postdata(); // Reset loop data
?>
</section>
content-archive-project.php
ressemble à ceci:
<article class="project">
<?php if ( has_post_thumbnail() ) {
the_post_thumbnail( 'post-thumbnail',
array( 'class' => 'featured' ));
}
?>
<header class="entry-header">
<?php the_title( '<h2><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' ); ?>
<p><?php
$tagline = get_post_meta( get_the_ID(), 'aj_post_tagline', true );
echo esc_html( $tagline );
?></p>
</header>
<?php if ( $featured_query->current_post == 0 ) { ?>
<section class="entry-content">
<?php the_excerpt(); ?>
</section>
<?php } ?>
</article>
Tirez-le de la partie contenu. Ce serait le plus facile.
<section id="featured">
<?php // Start custom loop
$args = array(
'post_type' => 'project',
'posts_per_page' => 5,
);
$featured_query = new WP_Query( $args );
while ( $featured_query->have_posts() ) : $featured_query->the_post();
?>
<article class="project">
<?php
if ( has_post_thumbnail() ) {
the_post_thumbnail( 'post-thumbnail',
array( 'class' => 'featured' ));
}
?>
<header class="entry-header">
<?php the_title( '<h2><a href="' . esc_url( get_permalink() ) . '" rel="bookmark">', '</a></h2>' ); ?>
<p><?php
$tagline = get_post_meta( get_the_ID(), 'aj_post_tagline', true );
echo esc_html( $tagline );
?></p>
</header>
<?php if ( $featured_query->current_post == 0 ) { ?>
<section class="entry-content">
<?php the_excerpt(); ?>
</section>
<?php } ?>
</article>
<php
endwhile;
wp_reset_postdata(); // Reset loop data
?>
</section>
Une autre option serait d'essayer cette ligne:
include( locate_template( 'template-parts/content-archive-project.php', false, false ) );
au lieu de :
get_template_part( 'template-parts/content-archive', 'project' );
mais vous devriez tester cela comme je ne l'ai pas fait.