フロントページの最後の投稿を他の部分とは異なるスタイルにしたいのですが、どうすればこれを達成できますか。
これはindex.phpです
<?php
get_header();
?>
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post(); ?>
<?php get_template_part( 'content', get_post_format() ); ?>
<?php endwhile; ?>
<?php else : ?>
<article id="post-0" class="post no-results not-found">
<section>
<h3><a href="#">Sorry!</a></h3>
<p>Hier gibt es nichts zu sehen. </p>
<section>
</article><!-- #post-0 -->
<?php endif; ?>
<div id='postNavi'>
<div class='older'><?php next_posts_link('Ältere Beiträge »');?></div>
<div class='newer'><?php previous_posts_link('« Neuere Beiträge');?></div>
</div>
<?php
get_footer();
?>
そして私が使用する2つのフォーマット:
content-aside.php
<article id="post-<?php the_ID(); ?>" <?php post_class();?> >
<h1><?php if(is_single()) {?>
<?php the_title();?>
<?php } else { ?>
<a href="<?php the_permalink();?>"><?php the_title();?></a>
<?php }?>
</h1>
<div class='postMeta2'>
<?php the_category(' | ') ?>
</div>
<section class='multi-column'>
<?php
if ( is_home() ) {
the_excerpt();
} else {
the_content('Weiterlesen');
}
?>
</section></article>
そしてcontent-quote.php
<article id="post-<?php the_ID(); ?>" <?php post_class();?> >
<h1>
<?php if(is_single()) {?>
<?php the_title();?>
<?php } else { ?>
<a href="<?php the_permalink();?>"><?php the_title();?></a>
<?php }?>
</h1>
<div class='postMeta2'>
<?php the_category(' | ') ?>
</div>
<section>
<blockquote>
<?php
the_content('read the rest');
?>
</blockquote>
</section>
</article>
これを達成するためには、ページの最後の投稿がどれであるかを知る必要があります。これを実現するには2つの方法がありますが、最も簡単な方法は純粋なphp、関数 end()
を使用することです。ループの最後の投稿を取得するためにこれを使用します。
ループの最後の投稿が見つかったら、最後の投稿のIDと現在の投稿IDを比較するだけで済みます。それらが一致する場合は、カスタムスタイルを適用できます。
あなたのcontent-*.php
では、以下を試すことができます。
$last_post = end($wp_query->posts);
if ($last_post->ID == $post->ID) {
//Apply your styling for the last post
}