WordPressで「記事の1件目にだけ広告を表示する」みたいなことをするための方法です。
記事の1件目に広告を挟むような特定の処理を入れたりできる他、1件目の記事にだけ特別なクラスを指定することもできます。
また、偶数件数や奇数件数の記事、ループで回した最後の記事に対しても特別なクラスを指定することができるなど、デザインの自由度がかなり上がるカスタマイズです。
「1件目の記事だけ」に特定の処理を施す
functions.php の編集
kanonjiの日記 様のブログで紹介されているコードを、functions.phpに追記します。
1 2 3 4 5 6 |
<?php function isFirst(){ global $wp_query; return ($wp_query->current_post === 0); } ?> |
テンプレートファイル への記述例
index.php や archive.php などのテンプレートファイルで、記事の1件目だけに何か処理を施したい場合の例です。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<?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())
などを使って手軽に振分処理ができるようになります。「2件目」の記事の条件分岐
1 2 3 4 |
function isSecond(){ global $wp_query; return ($wp_query->current_post === 1); } |
「奇数件」の記事の条件分岐
1 2 3 4 5 6 |
<?php function isOdd(){ global $wp_query; return ((($wp_query->current_post+1) % 2) === 1); } ?> |
「偶数件」の記事の条件分岐
1 2 3 4 5 6 |
<?php function isEvery(){ global $wp_query; return ((($wp_query->current_post+1) % 2) === 0); } ?> |
「最後の記事だけ」に特定の処理を施す
123456
<?phpfunction isLast(){ global $wp_query; return ($wp_query->current_post+1 === $wp_query->post_count);}?>
1 2 3 4 5 6 |
<?php function isLast(){ global $wp_query; return ($wp_query->current_post+1 === $wp_query->post_count); } ?> |
コメント