$featured_query
がすべての投稿を最初の投稿として扱うのはなぜですか?以下の ここにあるPieterのアドバイス 、および同様の投稿、内蔵のループカウンターを使って最初の投稿にのみ抜粋を表示することはできませんでした。
front-page.php
には注目のプロジェクトセクションがあり、テンプレート部分を呼び出します。
<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
は次のようになります。
<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>
コンテンツ部分から引き出します。それが一番簡単でしょう。
<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>
もう1つの選択肢は、この行を試すことです。
include( locate_template( 'template-parts/content-archive-project.php', false, false ) );
の代わりに :
get_template_part( 'template-parts/content-archive', 'project' );
しかし、あなたは私がしなかったようにそれをテストするべきです。