front-page.phpとhome.phpとindex.phpの関係

front-page.phpとhome.phpは、どちらもトップページのテンプレートとして使用可能なファイルですが、両方とも含まれているテーマも少なくありません。では、2つのテンプレートは、いつ、どのようなタイミングで使われるのでしょうか。

front-page.php/home.php/index.phpの関係は?
front-page.php/home.php/index.phpの関係は?

ここでは、front-page.php、home.php、index.phpがトップページのテンプレートとして使われるタイミングを紹介します。

トップページはfront-page.phpが最優先

使用中のテーマにfront-page.phpが存在する場合は、トップページの表示レイアウトにはfront-page.phpが使われます。

front-page.phpとhome.phpの両方が含まれる場合でも、トップページのテンプレートとしてはfront-page.phpが優先されます。

front-page.phpが存在しない場合

front-page.phpが存在しない場合は、home.php、page.php、index.phpなどが使われます。そのタイミングは「設定」‐「表示設定」メニューの「フロントページの表示」の設定によります。

「フロントページの表示」が「最新の投稿」の場合

「フロントページの表示」が「最新の投稿」の場合はhome.phpが使われます。home.phpが存在しない場合はindex.phpが使われます。

「フロントページの表示」が「最新の投稿」の場合
「フロントページの表示」が「最新の投稿」の場合

「フロントページの表示」が「固定ページ」の場合

「フロントページの表示」が「固定ページ」の場合はpage.phpが使われます。

「フロントページの表示」が「固定ページ」の場合
「フロントページの表示」が「固定ページ」の場合

ただし、その固定ページにpage-スラッグ.phpのようなテンプレートが適用されている場合は、そのテンプレートが優先されます。

また、上記の設定では「投稿ページ」(ブログ記事一覧)のテンプレートにhome.php(存在しない場合はindex.php)が使われます。

まとめ

トップページのテンプレートにfront-page.php、home.php、index.phpが使われるタイミングは理解できたでしょうか。基本的にはfront-page.phpですが、すべてのテーマにfront-page.phpが存在するとは限りません。home.phpとindex.phpの優先順位もおさえておきましょう。

2016年10月1日WordPressのPHP