トップページの条件分岐方法を改めて検証してみました

2012-10-16

WordPressのトップページのテンプレートファイルは home.php、index.php あたりを使用する場合が多いと思います。

その場合、header.phpでトップページ用の条件分岐をする必要が出てきます。
(もちろん、必要ない場合もあります)
この条件分岐のタグはどれが適しているのか、という点について改めて検証をしてみました。

トップページ(フロントページ)の条件分岐に使えるテンプレートタグ

is_home()
is_front_page()
is_page()


何もカスタマイズをしていない場合、WordPressのトップページ独自のコンテンツは管理画面側で管理できませんが、固定ページをトップページ(フロントページ)として割り当てる事が可能です。


フロントページの変更方法

管理画面 -> 設定 -> 表示設定 -> フロントページの表示 でトップページにしたい固定ページを選択すればOK。
※固定ページが1つも無い場合は「フロントページの表示」が表示されないのでご注意を。


条件分岐タグの検証結果

さて、本題に戻ります。
フロントページをデフォルト設定の場合、固定ページを設定した場合で、条件分岐タグはどのような結果を返すのかを検証しました。
結果は下記の通り。
テンプレートタグ フロントページ設定無し フロントページとして固定ページを設定
is_home() true false
is_front_page() true true
is_page() false true
is_front_page() が万能です。フロントページの条件分岐にはやはり is_front_page() が良いですね。
しかし、is_home() にもメリットがあります。home.php というテンプレートファイルとネーミングが揃っていてわかりやすいです。
ケースバイケースでご利用下さいませ。