WordPressでループの最初の記事だけに何かを挿入する方法

Wordpressでは、tagページやarchiveページは、記事の表示にループ出力が用いられています。

このようなページにおいて、ループの最初の記事だけに何かを表示させたい場合があります。

例えば、tagページにAdsenseを挿入したい場合、もしも、ループしているすべての記事の末尾に挿入してしまうと、複数のAdsenseが表示されてしまうことになり、規約違反となってしまいます。

または、ループの最初の記事だけにサムネイル画像を表示さえて強調させたいということがあるかもしれません。

そのような場合に、ループの最初の記事だけに何かを挿入する方法です。

下記は、tagページにおいて、最初の記事の末尾だけに広告を挿入する方法です。

tag.php内で、Start the Loopという項目を探し、下記のように編集します。

<?php /* Start the Loop */ ?>
<?php $first_flag_for_ad = true;?>
<?php while ( have_posts() ) : the_post(); ?>
<?php
/* Include the Post-Format-specific template for the content.
 * If you want to overload this in a child theme then include a file
 * called content-___.php (where ___ is the Post Format name) and that will be used instead.
 */
get_template_part( 'content', get_post_format() );
?>

<?php if($first_flag_for_ad) : ?>
<?php echo <<<EOD
【ここに挿入】
EOD;
?>
<?php $first_flag_for_ad = false;?>
<?php endif;?>
<?php endwhile; ?>
<?php twentyeleven_content_nav( 'nav-below' ); ?>
<?php else : ?>


上記を解説すると、$first_flag_for_adという変数を用意し、最初の出力が終わった段階で、Falseに変更します。While内でTrueの場合にだけ出力させることにより、実現させています。

こうして、Wordpressにおいて、ループ出力させているページの最初の記事だけに何かを表示させることができました。