WordPressのhome.phpとは?|投稿一覧ページとトップページの違いを解説

home.phpを「ホーム画面に使用するファイル」と認識していると痛い目を見る

「home.phpはホーム画面用のファイル」と思っていませんか?

実は、home.phpは投稿一覧ページに使われるファイルで、トップページに使われるのは条件付きです。

僕も最初この誤解で混乱しました。

この記事では、home.phpの位置付けについてをテンプレート階層から解説します。

目次

テンプレート階層を把握しよう

WordPressは、テンプレート階層という概念があり、ファイルの中で優先度が決まっています。

下はWordPress.orgの公式サイトに掲載されている画像ですが、左にあるファイルの方が優先度が高く、右にある方が優先度が低いです。

引用:https://ja.wordpress.org/team/handbook/theme-development/basics/template-hierarchy/

このテンプレート階層を正しく把握していないと、頭がこんがらがって何をやっているかわからなくなることがあります(特にオリジナルテーマ制作、開発の勉強をしている時)。

なので、この画像は公式ページからダウンロードしても良いので、保存や印刷をして

いつでも見れる状態にしておくことをお勧めします。

なお、index.phpとstyle.cssがないとテーマが作れないので

この2つのファイルは絶対に必要です。

そういう意味でも、index.phpは1番右の位置に来ています。

home.phpの位置付け

それでは、home.phpの位置付けについて解説していきますが

さっきのテンプレート階層画像の左端の、下から3番目と4番目に着目してください。

下から3番目には「Blog Posts Index page」とあります。

一方、4番目には「Site Front Page」とありますね。

home.phpは投稿一覧ページも出せる

まず「Blog Posts Index page」についてですが、これは投稿ページのことだと思ってください。

ただし、1つの投稿(各々の投稿)ではなく、投稿ページが集まった「投稿一覧ページ」です。

「Blog Posts Index page」を右にずっと辿っていくと、home.phpに辿り着くのがわかると思います。

よって、投稿一覧ページはhome.phpで表示ができます。

ちなみに、僕も最初まんまと陥ってしまいましたが

「(個別の)投稿ページはsingle.phpだから、投稿一覧ページもsingle.phpだろう」

という認識でいると、うまく反映されなくて意味がわからなくなってきます。

投稿一覧ページはhome.phpで表示ができる

設定>表示設定で「最新の投稿」を設定している場合は、トップページも出せる

次に、「Site Front Page」についてですが、すぐ右にfront-page.phpがあります。

このファイルは、サイトのトップページを表示するのによく使われるファイルですね。このファイルがあれば、このファイルの内容をトップページとして表示します。

その右に「Page Shown On Front」と「Posts Shown On Front」とあります。

先に、「Posts Shown On Front」から見ていきますが、これは「最新の投稿」という意味です。

管理画面から、設定>表示設定をいじったことがある人だったら、見たことがある表記だと思います。

この「Posts Shown On Front」をずっと右に辿っていっても、home.phpに辿り着きます。

つまり、設定>表示設定にてトップページに「最新の投稿」を設定している場合は、home.phpファイルに記述されている中身がトップページとして表示されます。

一方、「Page Shown On Front」は、固定ページのことで、ホーム画面と投稿画面を好きな固定ページに切り替えられる設定です。

こちらを辿っていくと、page-$slug.phpやpage-$id.php、page.phpに行き着きます。

home.phpは出てきません。

page.phpは通常トップページにはなり得ませんから、設定>表示設定にてトップページに「固定ページ」を設定している場合は、front-page.phpファイルに記述されている中身がトップページとして表示されます。

WordPressオリジナルテーマ開発には「Show Current Template」を利用することがおすすめ!

現在、なんのファイルが表示されているのかを把握している方が、修正がしやすいですよね。

そんなときに便利なのが、「Show Current Template」のプラグインです。

使い方は簡単で、インストールして有効化するだけで、サイトの上のバーに現在いるページに利用されているファイル名が表示されます。

ぜひテーマ開発に役立ててください!

最後に

というわけで、今回は

home.phpを「ホーム画面に使用するファイル」と認識していると痛い目を見る、ということで

テンプレート階層を正しく理解することの重要さについて解説しました。

このブログでは、今回のようにコーディングやWordPressなどに役立つ情報を発信しているので

次回の記事もぜひみてみてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

わい
Web制作未経験から、HTML/CSS(Sass)/JavaScript(JQuery)/WordPressを習得し、学習開始半年で月収10万円を達成。制作実績15件超。大手有名企業の提携会社のサイト制作も経験。
主にWeb制作に関する話題やコーディング、WordPressなどに役立つ情報を発信しています。

コメント

コメントする

CAPTCHA


目次