なんか変!?WordPressのトップページはindex.php?home.php?front-page.php?
WordPressのテーマ作成をする上でテンプレート階層という概念を覚える必要があります。
その中でも「プロ」を自称している人でも勘違いしている事が多いトップページにどのファイルを使うか?という話。
HTMLやPHPを勉強した人からするとindex.phpでしょ?と思うはずです。
そうですよね。普通にHTMLでindex.htmlを作ったら最初に表示されますよね?PHPでindex.phpを書けば最初に読み込まれますよね?
しかし、WordPressはちょっと違うんです。
細かい話をするとWordPressのテーマはちょっと違うんです。
※WP本体はindex.phpを最初に読み込みます。
これ、案外知っている人が少ないので「プロ」を目指している人は是非覚えておいてください。
いきなり結論を言っちゃいます。
トップページを固定ページにする場合は「front-page.php」
一覧ページにする場合は「home.php」
です。
WordPressは、「設定 > 表示設定」で、トップページ(ホームページ)の表示の設定が出来ます。
○最新の投稿
○固定ページ
の2つあり、どちらかを選ぶ事が可能です。
「最新の投稿」は、通常トップページに時系列に記事が並びます。
ブログとして使う場合はこちらの設定ですね。
この場合は、「home.php」を使用します。
「固定ページ」を選ぶと「ホームページ」と「投稿ページ」を選ぶ事が可能です。
「ホームページ」とはトップページのことです。この場合は「front-page.php」を使用します。
「投稿ページ」は記事一覧ページのことです。前述の「最新の投稿」の際にトップページだった物(新着記事一覧)が固定ページのトップページを作ったことによって居場所がなくなってしまったので別ページに表示させることが出来ます。
この場合は、「最新の投稿」の時と同じく「home.php」を使用します。
じゃ、index.phpって何なのよ?
ですよね。何なんでしょうね。
私も最初は悩みました。
テンプレート階層の考えで言うと「index.phpとは何もない場合に表示させるテンプレート」です。
WordPressのテンプレートは、カテゴリーページは「category.php」が使われたり、投稿ページは「single.php」が使われたり、一定のルールを元にテンプレートを呼び出します。
その際に、該当するテンプレートがない場合に表示されるのが「index.php」です。
なんでこんなめんどくさいことになってるの?
確かに…。
トップページが「index.php」の方が分かりやすいじゃないか!
これは、WordPressの歴史に関係します。
皆さんご承知の通り、元々、WordPressはブログとして生まれました。
ブログなので一覧ページと記事ページがあればよかったので最初はindex.phpとsingle.phpしかありませんでした。
もちろん、その頃はトップページはindex.phpでした。
その後、カテゴリーページと同じじゃなくてトップページだけ表示を変えたい。
って要望が高まりhome.phpが誕生します。
また、時代が流れてWordPressをブログではなくWebサイトとして使いたいという要望が増えました。
トップページに一覧が並ぶのではなく、固定のコンテンツを配置したいという要望に応えるためにfront-page.phpが生まれた訳です。
※ここらへんはうろ覚えなので、間違っていたら詳しい方コメントでご指摘いただければ幸いです。
まとめ
私の個人的な考えとして、「同業者に笑われるようなコーディングはしたくない」
ま、妥協することは多々ありますが…
あなたが間違ったテンプレートを使って納品したサイトを数年後同業者が見たときに「え?シロウトじゃないすか。」って言われたくないですよね。
この記事が気に入ったらサポートをしてみませんか?