よくあるWordPress / 投稿の最初か最後を判定する

投稿を一覧表示する際にデザイン上、リストの最初と最後が必要なときに。
記事ループ内だと $wp_query を使って下記のように判定します。
※テンプレ内で使用することを想定

1
2
3
4
5
6
<?php if ($wp_query->current_post === 0) : ?>
    <li class="first">
<?php elseif ($wp_query->current_post === $wp_query->post_count - 1) : ?>
    <li class="last">
<?php endif; ?>
...

自分で一覧取ってくる時もWP_Queryで取得していればだいたい同じ。

1
2
3
4
5
6
7
8
9
10
11
<?php
$result = WP_Query(array('posts_per_page' => 10)); // 適宜欲しい内容を取得
while ($result->have_posts()) {
    $result->the_post();
    if ($result->current_post === 0) {
        echo '<li class="first">';
    } elseif ($result->current_post === $feed->post_count - 1) {
        echo '<li class="last">';
    }
...
}

よくあるWordPress / トップを固定ページにした時に投稿一覧を表示するには

すげえ基本的なことなんだけど、忘れちゃうのでメモ。
CMSとして使う時にトップページはWordPressの固定ページにしたいんだけど、デフォルトのトップはお知らせ一覧として使いたいよって時の設定方法。
結果から言うと、基本機能で出来るんだけどテンプレートで解決しようとして迷わないように。

まずは、固定ページ機能から「トップページ」と「お知らせ一覧ページ」(デフォルトトップの投稿一覧を使いたいページね)を作成します。
トップはそれなりに作るとして、お知らせ一覧は本文は無視されるのでブランクで良いす。

WordPress管理画面の「設定 → 表示」にあるフロントページの表示を下記のように設定します。

そうなのよね、単に「投稿ページ」の所に設定するとそこがこれまでのトップと同様に投稿一覧を表示してくれるようになるのね。
トップを固定ページに差し替えるのはよくやってたけど、こちらは見逃してたわ。