web-dev-qa-db-fra.com

$ WP_Query: Comment afficher un extrait sur le premier message seulement

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>
1
the-first-man

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.

0
rudtek