今のページが「投稿の一覧(ブログのページ)」かどうかを調べます。名前は「ホーム」ですが、サイトのトップとは限らないので注意が必要です。
書き方
is_home(): bool
引数はありません。投稿の一覧のページなら true、そうでなければ false を返します。
使い方の例
// 投稿の一覧のページだけ、見出しを出す
if ( is_home() ) {
echo '<h1>ブログ</h1>';
}
どのページで true になるか
「設定 → 表示設定」の「ホームページの表示」で変わります。
- 「最新の投稿」のとき:サイトのトップで
true(このときはis_front_page()もtrue)。 - 「固定ページ」のとき:「投稿ページ」に選んだページで
true。サイトのトップではfalseです。
よくある間違い
- サイトのトップかどうかを調べたいときに
is_home()を使ってしまう。トップを調べるならis_front_page()です。 pre_get_postsの中では、関数ではなく受け取った$queryの$query->is_home()を使います($query->is_main_query()と組み合わせる)。- 投稿を読み込む前(
initなど)に呼ぶと、まだ決まっていないので正しく判定できません。wpやtemplate_redirectより後で使います。
関連する関数
is_front_page():サイトのトップかis_single():投稿の 1 件のページかis_archive():カテゴリ・タグ・日付などの一覧か



