WordPressのダッシュボードにある「設定→表示設定→ホームページの表示」というブロックで、トップページに「最新の投稿」か「固定ページ」のどちらを設定するか選択できます。
ここの設定次第でトップページにfront-page.phpかhome.php、どちらのテンプレートファイルが適用されるか変わるわけですが、今回はどう設定すればどちらのテンプレートファイルが適用されるのかについてまとめてみました。
テンプレートファイルの優先順位
WordPressサイトのトップページには、最新の記事一覧か、任意の固定ページを設定することができます。
どちらの場合でも、使っているWordPressテーマにfront-page.phpというテンプレートファイルがあれば、それが適用されます。
もしテーマにfront-page.phpがない場合には、以下のような優先度で代わりのテンプレートファイルが適用されるようになっています。
- ホームページの表示で「最新の投稿」を設定している場合
- front-page.php
- home.php
- index.php
- ホームページの表示で「固定ページ」を設定している場合
- front-page.php
- page-(固定ページのスラッグ).php
- page-(固定ページのID).php
- page.php
- singular.php
- index.php
以下に「設定→表示設定→ホームページの表示」での設定によって、適用されるテンプレートファイルがどう変わるのかについてまとめます。
なおWordpressの表示設定では、サイトのトップページを「ホームページ」、ブログなどの記事一覧ページのことを「投稿ページ」と表現しています。
ここではそれに倣って記載するので、以下の認識でお願いします。
- 「ホームページ」はサイト全体のことではなく、「投稿ページ」は記事ページ(シングルページ)のことではない
- 「ホームページ」はサイトのトップページ、「投稿ページ」はブログトップ(最新の記事一覧ページ)のことである
「表示設定→ホームページの表示」と適用されるテンプレートファイル
1.ホームページの表示で「最新の投稿」を選択した場合
ホームページにはfront-page.phpが適用されます。
テーマ内にfront-page.phpがない場合は、home.php → index.phpの順で適用されます。
2.ホームページの表示で「固定ページ」を選択し、ホームページ・投稿ページともに未設定の場合
これはどうなるのか知りたくて試してみたのですが、結果、設定できませんでした。
未設定の状態で保存しようとすると、ホームページの表示が「最新の投稿」に変更されて保存されます。
3.ホームページの表示で「固定ページ」を選択し、ホームページに任意の固定ページを設定、投稿ページを未設定の場合
ホームページにはfront-page.phpが適用されます。
また投稿ページは出力されません。
コーポレートサイトなどで固定ページのみで管理できる場合は、この設定にしておくといいかもしれません。
4.ホームページの表示で「固定ページ」を選択し、ホームページを未設定、投稿ページに任意の固定ページを設定の場合
ホームページにはhome.phpが適用されます。
ホームページに最新の投稿が表示されるので、ホームページの表示で「最新の投稿」を選択した場合とサイト構造としては同じです。
でもホームページの表示が「最新の投稿」の場合はfront-page.phpでが適用されるので、何らかの理由でhome.phpを適用させたい場合はこの設定にするとよさそうです。
5.ホームページの表示で「固定ページ」を選択し、ホームページ・投稿ページともに任意の固定ページを設定の場合
ホームページにはfront-page.phpが適用されます。
テーマ内にfront-page.phpがない場合は、page-(固定ページのスラッグ).php → page-(固定ページのID).php → page.php → singular.php → index.phpの順で適用されます。
まとめ
以上、WordPress表示設定と、適用されるテンプレートファイルについてでした。
ちょっと大雑把な言い方になってしまいますが、そのWordPressサイトを「ブログ」として構築したいのか「ホームページ」として構築したいのかによって、適切な表示設定が変わります。
ブログの場合は基本的に「最新の投稿(上記の1)」、ホームページの場合は「固定ページ(上記の3・5)」で、ブログだけどトップページを固定ページとして管理したい場合は上記4の設定にしておくといいのではと思います。