WordPressのテーマをカスタマイズするなら、テンプレート階層について押さえておこう

テーマのカスタマイズとテンプレート階層(template hierarchy)

WordPressのテーマをカスタマイズする時には、テンプレート階層について知っておく必要があります。
カスタマイズしたいページが決まったら、次はどのファイルを修正したらいいのかを突きとめる必要がありますよね。そこで、関係してくるのがテンプレート階層だからです。

テンプレート階層(template hierarchy)って何?

テンプレート階層とは、サイトのページを表示する時に、どのファイルを使うかという優先順序を決めたルールです。

例えば、WordPressでは「ブログのトップページ」を表示する時には「home.php」というファイルを使うと決められています。ここまでは、普通のHTMLサイトと似たようなものですが、WordPressでは、更に「home.php」が無かったら「index.php」を使うという風に、あるページを表示する時に、どのファイルを使うか、それが無かったら、次にはどれを使うかといった順序まで決まっています。

こちらにテンプレート階層の図があります。
図の左側の黒い四角がページの種類で、そこから右に向けて伸びた線をたどると、そのページを表示させる為に使われるファイルが赤や青の四角で表されています。その経路で最初に見付かったファイルが表示に使われるわけです。

そして、どの種類のページでも、順番の最後は「index.php」になっています。つまり、極論を言うと、WordPressのテーマは「index.php」だけ作っても動かすことができます。

実際のテーマではファイルが分かれいる理由

実際には、どのテーマにも、そこそこの数のファイルがありますよね。なぜファイルの数が多いのでしょう。

まず、ページの種類によって表示させる内容を変えたい場合は別のファイルにします。例えば、トップページには最新記事の一覧や重要なお知らせを表示しても、個別の記事のページには個別の記事内容を表示したいと思います。この場合は、テンプレート階層に従ったファイル名にしておく必要があります。テンプレート階層を無視すると、別のファイルが使われてしまいますから。

また、同じ内容のコードを何回も記述する場合は、その部分だけを別ファイルに分けて、必要な箇所で読み込んだ方が、手間やミスも減ります。
例えば、サイトのタイトルなどのページ上部(ヘッダー部分)やコピーライトなどのページ下部(フッター部分)は、どのページにも同じものを表示すると思いますが、これをページの種類ごとに記述していると、後から内容を変える必要が出てきた場合には、何個もファイルを書き換える羽目になります。モレやミスも起きやすいですよね。なのでヘッダー部分やフッター部分は別のファイルになっている事が普通です。

なお、このように、ヘッダー部分やフッター部分など、一部分だけを別にしたファイルは、テンプレート階層には記載されていません。あくまでも元のファイルだけが記載されています。

タイトルとURLをコピーしました