WordPressテーマTwenty Elevenでアーカイブ、カテゴリーページの最初の投稿記事だけ別処理させる方法

Pocket
LINEで送る

本投稿記事の内容は、「WordPress3.3.1」のテーマ「Twenty Eleven1.3」での話であり、バージョンが大きく異なると動作しない場合があります。
※2012/06/03追記 「WordPress3.3.2」での動作を確認しました。
※2012/06/20追記 「WordPress3.4」テーマ「Twenty Eleven1.4」での動作を確認しました。
※2013/01/07追記 テーマ「Twenty Twelve」の場合については「WordPressテーマTwenty Twelveでアーカイブ、カテゴリー、タグページの最初の投稿記事の前後だけに別処理を追加する方法」を参考にして下さい。

前々回の記事で最初の投稿記事だけ別処理させる事が出来た。しかし、アーカイブやカテゴリーのページが対応していないことを忘れていました。今回はアーカイブやカテゴリーのページで記事の前後に追加処理させる方法を説明します。

  1. アーカイブページで最初の記事の前後に別処理させる方法
  2. /wp-content/themes/twentyeleven内にある「archive.php」
    下記の箇所を変更して下さい。小テーマを作っている場合は、間違えず小テーマ側の「archive.php」を変更して下さい。

    例)「archive.php」

    
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    				<?php /* Start the Loop */ ?>
    				<?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 endwhile; ?>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    



    ∨※2行目を変更していることに注意

    
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    				<?php /* Start the Loop */ ?>
    				<?php while ( have_posts() ) : the_post(); $counter++; ?>
    <?php if ($counter <= 1) {
    print <<<EOD
    <!-- ここから最初の記事の前に処理する内容	-->
    
    <!-- ここまで最初の記事の前に処理する内容	-->
    EOD;
    } ?>
    					<?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 ($counter <= 1) {
    print <<<EOD
    <!-- ここから最初の記事の後に処理する内容	-->
    
    <!-- ここまで最初の記事の後に処理する内容	-->
    EOD;
    } ?>
    				<?php endwhile; ?>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    

    これでアーカイブページで最初の記事の前後に別の処理をさせることが出来ます。

  3. カテゴリーページで最初の記事の前後に別処理させる方法
  4. /wp-content/themes/twentyeleven内にある「category.php」
    下記の箇所を変更して下さい。小テーマを作っている場合は、間違えず小テーマ側の「category.php」を変更して下さい。

    例)「category.php」

    
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    				<?php /* Start the Loop */ ?>
    				<?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 endwhile; ?>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    



    ∨※2行目を変更していることに注意

    
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    				<?php /* Start the Loop */ ?>
    				<?php while ( have_posts() ) : the_post(); $counter++; ?>
    <?php if ($counter <= 1) {
    print <<<EOD
    <!-- ここから最初の記事の前に処理する内容	-->
    
    <!-- ここまで最初の記事の前に処理する内容	-->
    EOD;
    } ?>
    					<?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 ($counter <= 1) {
    print <<<EOD
    <!-- ここから最初の記事の後に処理する内容	-->
    
    <!-- ここまで最初の記事の後に処理する内容	-->
    EOD;
    } ?>
    				<?php endwhile; ?>
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    

    これでカテゴリーページで最初の記事の前後に別の処理をさせることが出来ます。

※2012/05/23追記 タグのページも忘れていましたので、「tag.php」も同様に変更して下さい。

Pocket
LINEで送る

スポンサーリンク


スポンサーリンク