WordPress

WordPress 最新の記事一覧を表示する方法

WordPress 最新の記事一覧を表示する方法

WordPress で最新の記事一覧を表示する方法を紹介します。
例えば、トップページやサイドバーに最新の記事一覧を表示したい場合に便利な方法です。

  1. 最新の記事を表示するには?
    1. 最新の投稿5件を表示
    2. 表示件数を変更したい
    3. カテゴリーでソートしたい
  2. 表示がうまくいかない場合
  3. 投稿にカスタム投稿を含める場合

最新の記事を表示するには?

WordPress で投稿を取得する場合 WP_Queryget_posts など幾つか方法があります。
この投稿では、主に get_posts を使った最新の記事一覧の取得方法を紹介します。
一つのページで複数の記事一覧を作成する場合には、get_posts よりも WP_Query を使う方が柔軟に対応できます。
WP_Query を使った表示方法は姉妹記事のWordPress 基本的なループの表示方法を参照してください。

最新の投稿5件を表示

最新の投稿5件をリンク付きのタイトルで表示する方法を紹介します。
次のコードを最新記事一覧を表示させたいテンプレートに追加してください。

<ul>
<?php
$args = array(
'posts_per_page' => 5 // 表示件数の指定
);
$posts = get_posts( $args );
foreach ( $posts as $post ): // ループの開始
setup_postdata( $post ); // 記事データの取得
?>
<li>
<a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
</li>
<?php
endforeach; // ループの終了
wp_reset_postdata(); // 直前のクエリを復元する
?>
</ul>

ループ(最新記事一覧)の後に foreach 実行前の記事が必要な場合は、wp_reset_postdata を追加することで直前の記事を復元することができます。

表示件数を変更したい

表示件数を調整したい場合は posts_per_page の値を編集します。
例えば、最新記事を3件表示したい場合は、 サンプルコード内の 'posts_per_page' => 5 の数字を変更します。

-- 省略 --
'posts_per_page' => 3 // 表示件数の指定
-- 省略 --

カテゴリーでソートしたい

カテゴリーでソートしたい場合 category を使います。
例えば、カテゴリーIDが1のカテゴリーでソートしたい場合は次のコードを追加します。

-- 省略 --
$args = array(
'posts_per_page' => 5, // 表示件数の指定
'category' => 1 // カテゴリーID 1 のカテゴリーを指定
);
-- 省略 --

カテゴリーのIDを調べるには、管理画面でカテゴリーの詳細ページの URL を確認。
表示されている URL に ID の指定を見つけることができます。

表示がうまくいかない場合

最新の記事一覧が表示されない場合、表示件数指定の記載などで「,(カンマ)」が抜けている場合があります。
取得条件が一つなら次のようになります。

-- 省略 --
$args = array(
'posts_per_page' => 5 // 取得の条件が一つなら「,(カンマ)」は不要
);
-- 省略 --

取得条件が複数は次のようになります。

-- 省略 --
$args = array(
'posts_per_page' => 5, // 最後以外は「,(カンマ)」が必要
'category' => 1 // 最後は不要
);
-- 省略 --

「,(カンマ)」の見落としは多いのでご注意ください。

投稿にカスタム投稿を含める場合

投稿にカスタム投稿を含める場合は、メインクエリをカスタマイズする必要があります。
例えば、投稿にカスタム投稿(blog)を含める場合は、次のコードを function.php に追加します。

/* 【出力カスタマイズ】メインクエリーをカスタマイズ */
add_action( 'pre_get_posts', 'foo_modify_main_queries' );
function foo_modify_main_queries ( $query ) {
if ( ! is_admin() && $query->is_main_query() ) { // 管理画面以外かつメインクエリーを対象とする
if ( $query->is_home() ) {
$query->set( 'post_type', array('post','blog')); // 投稿とカスタム投稿(blog)を含める
}
}
}

カスタム投稿を複数追加する場合は array('post','blog')) の部分を array('post','blog','news')) などに編集してください。

まとめ

WordPress で最新の記事一覧を表示する方法を紹介しました。
「カスタム投稿タイプで表示したい」「タクソノミーでソートしたい」「アイキャッチ画像を表示したい」などなど、細かくカスタマイズしたい場合は WP_Query を使った表示方法がおすすめです。
WP_Query を使った表示方法は姉妹記事のWordPress 基本的なループの表示方法を紹介で詳しく紹介しています、こちらも合わせて参照してください。

スポンサーリンク

合わせて読みたい関連記事