92.テーマって何だ?② ~テンプレートと階層構造~
本日も引き続きテーマについて。
昨日はテーマの場所や、ざっくりとした仕組みについて確認しました。
じゃあ、テーマのフォルダの中身はどうなっているのか?
それについて見ていきましょう。
テーマはテンプレートの集まり
デフォルトで用意されているテーマフォルダの中を見ると、様々なPHPファイルがあると思います。
などがあり、
ここで注意したいのが、PHPとCSSはあるがHTMLは無いのです。
何故か?
そう、
ブラウザからリクエストを受け取ったサーバーがHTMLを生成して返却しているんでしたね。
この
「サーバーがHTMLを生成する」
この時にテーマフォルダ内のPHP達がテンプレートとして活躍しているというわけです。
リクエストに応じて、必要なPHPを組み合わせて、コンテンツ部分はデータベースから引っ張ってきて、適切な箇所に埋め込んで、最終的にHTMLに整形してブラウザに返すと…。
URLをクリックすると簡単に表示されるwebサイトですが、中ではこんな事も行われていたんですね。
改めてスゴイですね。
テンプレートには階層がある
テンプレートと言ってもどのリクエストにどのテンプレートを使用するのか。
そういった決まりごとが無いと混乱してしまいますね。
そこを解決できる優先順位的なルールが存在しています。
それがテンプレート階層です。
~がなければ~を使って、さらに~がなければ~を…
のような動きをします。
おなじみのindex.phpは階層構造では一番最後にあたります。
すべての条件を満たさない場合に適用されるテンプレート、すべての受け皿のような存在だったんですね。
そして下記が、テンプレート階層を図にしたもの
左から順に評価されて、なければ右へを繰り返していきます。
リクエストに対応する該当のテンプレートがあった場合に、そのテンプレートを使用してHTMLが生成されてブラウザに返されます。
最終的に辿り着く先がindex.phpなのは先程お伝えした通りですね。
因みに主なテンプレートには以下のようなものがあります。
- single.php・・・投稿詳細ページ用のテンプレートファイル
- archive.php・・・投稿一覧ページ用のテンプレートファイル
- page.php・・・固定一覧ページ用のテンプレートファイル
- search.php・・・検索結果ページ用のテンプレートファイル
- 404.php・・・404ページ用のテンプレートファイル
テンプレート階層については、繰り返し使って血肉にしていく必要がありそうですね。
今日のまとめ
- テーマはテンプレートファイルの集合体
- リクエストに応じて使用するテンプレートを切り替える
- 使用するテンプレートは優先順位があり、それをテンプレート階層と呼ぶ
本日はテーマのおもにテンプレートに関して学習しました。
本業が立て込んでいて、あまり時間が取れないですが引き続きやっていきます。
では、また。