web制作のしおり

日々の学習をアウトプットします。

92.テーマって何だ?② ~テンプレートと階層構造~

本日も引き続きテーマについて。

 

昨日はテーマの場所や、ざっくりとした仕組みについて確認しました。

 

じゃあ、テーマのフォルダの中身はどうなっているのか?

 

それについて見ていきましょう。

 

テーマはテンプレートの集まり

デフォルトで用意されているテーマフォルダの中を見ると、様々なPHPファイルがあると思います。

などがあり、

style.cssなどのCSSファイルも存在しています。

 

ここで注意したいのが、PHPCSSはあるがHTMLは無いのです

 

何故か?

そう、

ブラウザからリクエストを受け取ったサーバーがHTMLを生成して返却しているんでしたね。

 

この

「サーバーがHTMLを生成する」

この時にテーマフォルダ内のPHP達がテンプレートとして活躍しているというわけです。

 

リクエストに応じて、必要なPHPを組み合わせて、コンテンツ部分はデータベースから引っ張ってきて、適切な箇所に埋め込んで、最終的にHTMLに整形してブラウザに返すと…。

URLをクリックすると簡単に表示されるwebサイトですが、中ではこんな事も行われていたんですね。

改めてスゴイですね。

 

テンプレートには階層がある

テンプレートと言ってもどのリクエストにどのテンプレートを使用するのか。

そういった決まりごとが無いと混乱してしまいますね。

そこを解決できる優先順位的なルールが存在しています。

それがテンプレート階層です。

~がなければ~を使って、さらに~がなければ~を…

のような動きをします。

 

おなじみのindex.phpは階層構造では一番最後にあたります。

すべての条件を満たさない場合に適用されるテンプレート、すべての受け皿のような存在だったんですね。

そして下記が、テンプレート階層を図にしたもの

左から順に評価されて、なければ右へを繰り返していきます。

リクエストに対応する該当のテンプレートがあった場合に、そのテンプレートを使用してHTMLが生成されてブラウザに返されます。

最終的に辿り着く先がindex.phpなのは先程お伝えした通りですね。

因みに主なテンプレートには以下のようなものがあります。

  • single.php・・・投稿詳細ページ用のテンプレートファイル
  • archive.php・・・投稿一覧ページ用のテンプレートファイル
  • page.php・・・固定一覧ページ用のテンプレートファイル
  • search.php・・・検索結果ページ用のテンプレートファイル
  • 404.php・・・404ページ用のテンプレートファイル

 

テンプレート階層については、繰り返し使って血肉にしていく必要がありそうですね。

 

今日のまとめ

  • テーマはテンプレートファイルの集合体
  • リクエストに応じて使用するテンプレートを切り替える
  • 使用するテンプレートは優先順位があり、それをテンプレート階層と呼ぶ

 

本日はテーマのおもにテンプレートに関して学習しました。

本業が立て込んでいて、あまり時間が取れないですが引き続きやっていきます。

 

では、また。