• RSS

[WP]記事の1件目や偶数件目、奇数件目などに個別の処理を施す方法

  • このエントリーをはてなブックマークに追加
  • follow us in feedly


この記事は kanonjiの日記 様の記事を参考にさせていただきました。

WordPressで「記事の1件目にだけ広告を表示する」みたいなことをするための方法です。

記事の1件目に広告を挟むような特定の処理を入れたりできる他、1件目の記事にだけ特別なクラスを指定することもできます。

また、偶数件数や奇数件数の記事、ループで回した最後の記事に対しても特別なクラスを指定することができるなど、デザインの自由度がかなり上がるカスタマイズです。

「1件目の記事だけ」に特定の処理を施す


functions.php の編集

kanonjiの日記 様のブログで紹介されているコードを、functions.php に追記します。
<?php
function isFirst(){
global $wp_query;
return ($wp_query->current_post === 0);
}
?>

テンプレートファイル への記述例

index.php や archive.php などのテンプレートファイルで、記事の1件目だけに何か処理を施したい場合の例です。
<?php if (have_posts()) : ?>
<?php while (have_posts()) : the_post(); ?>			
<?php
if (isFirst()) { ?>
/*
1件目の記事にのみ処理(表示させたいコンテンツや処理)
*/
<?php }
else { ?>
/*
2件目以降の記事には何もしない
*/
<?php }
?>
<?php endwhile; ?>
<?php endif; ?>


最後の記事や、奇数、偶数の記事の条件分岐

以下のように「偶数件数」や「奇数件数」の記事、ループで回した「最後」の記事での条件分岐も可能です。

以下のコードを functions.php にまとめて書いておけば、テンプレートファイル内で if (isFirst()) if (isEvery()) などを使って手軽に振分処理ができるようになります。

「奇数件」の記事の条件分岐

<?php
function isOdd(){
global $wp_query;
return ((($wp_query->current_post+1) % 2) === 1);
}
?>


「偶数件」の記事の条件分岐

<?php
function isEvery(){
global $wp_query;
return ((($wp_query->current_post+1) % 2) === 0);
}
?>


「最後の記事だけ」に特定の処理を施す

<?php
function isLast(){
global $wp_query;
return ($wp_query->current_post+1 === $wp_query->post_count);
}
?>



  • このエントリーをはてなブックマークに追加
  • follow us in feedly

コメント

コメントを残す