it-swarm.com.de

$ WP_Query: Wie man einen Auszug nur im ersten Beitrag anzeigt

Warum behandelt mein $featured_query jeden Beitrag als den ersten? Nachdem ich den Rat von Pieter hier und ähnlichen Posts gefolgt bin und den integrierten Schleifenzähler verwendet habe, konnte ich den Auszug nur beim ersten Post nicht anzeigen.

front-page.php hat einen vorgestellten Projektabschnitt, der einen Vorlagenteil aufruft:

<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 sieht so aus:

<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

Ziehen Sie es aus dem Inhaltsteil heraus. Das wäre am einfachsten.

<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>

Eine andere Möglichkeit wäre, diese Zeile auszuprobieren:

include( locate_template( 'template-parts/content-archive-project.php', false, false ) ); 

anstatt :

get_template_part( 'template-parts/content-archive', 'project' );

aber du solltest das testen, da ich es nicht getan habe.

0
rudtek