web-dev-qa-db-ja.com

フロントページの最後の投稿に他の投稿と異なるスタイルを設定する方法

フロントページの最後の投稿を他の部分とは異なるスタイルにしたいのですが、どうすればこれを達成できますか。

これは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 &raquo;');?></div>
    <div class='newer'><?php previous_posts_link('&laquo; 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>
1
Caro

これを達成するためには、ページの最後の投稿がどれであるかを知る必要があります。これを実現するには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

}
2
Pieter Goosen