WordPress2.9で追加されたテンプレート階層
2010 年 2 月 3 日
さっそくですけど、自分WordPressが大好きなんです! なので、暇さえあればいろいろいじってるんですけど、今日は新しい機能を見つけたのでご紹介です。といっても大したことないんですけど。
表題のとおりWordPress2.9での新機能なんですが…。
そもそも、WordPressで構築したサイトの「見た目」についてまずは説明。
- WordPressはテーマという仕組みを使ってサイトを表示。
- そのテーマはテンプレートというPHPファイルやCSSファイル等で構成されている。
サイトのデザインは、テンプレートの種類によりデザインを切り替えて表示しています。
テンプレートの種類はいくつもあり必要に応じて使い分けるのですが、めっちゃわかりやすく言うとテンプレートのファイル名の違いで、使用する=読み込むテンプレートを指定することができます。
最低必要となるテンプレートファイルは「index.php」です。
これはすべてのページを「index.php」を用いて表示することを意味しますが、たとえば、トップページのみ違う見た目にしたい場合は「home.php」というファイルを作り、内容を記述します。
この「home.php」というファイル名がポイントで、このファイル名はWordPressにより決められたルールがあります。
つまり、そのルールに則ってテンプレートファイルを作ることで、ページごとに違うデザインを表示することができます。
例)日記というカテゴリのアーカイブページを独自のデザインにしたい場合は、まず日記カテゴリのIDを調べ、テンプレートファイルの名前を「category-(日記カテゴリのID).php」とします。
このように決められたファイル名を使い分けることにより、各ページ独自のデザインを施すことができます。
これを「テンプレート階層」と呼びます。
この決められたファイル名によりテンプレート適用の優先順位が決まるのですが、例えばカテゴリーページの場合、以下の順番で優先順位が変わります。
カテゴリーページのテンプレートの場合
- category-ID名.php(例えばカテゴリID6用のテンプレートであれば
category-6.php) - category.php
- archive.php
- index.php
(1)がもっとも優先順位が高いです。
で、以上がWordPress2.8以前の仕様。
ここからが本題。
WordPress2.9以降では、新たにテンプレート階層が追加された。
カテゴリーページのテンプレートの場合
- category-スラッグ名.php – 例えばカテゴリーのスラッグが “news” の場合は category-news.php
- category-ID名.php – 例えばカテゴリID6 用のテンプレートであれば
category-6.php - category.php
- archive.php
- index.php
※1.が2.9以降で追加
固定ページのテンプレートの場合
- ページ作成画面の「ページテンプレー ト」ドロップダウンメニューで選択したファイル名
- page-スラッグ名.php – 例えば固定ページのスラッグが “about” の場合は page-about.php
- page-ID名.php – 例えば固定ページのIDが6の場合は page-6.php
- page.php
- index.php
※2.と3.が2.9以降で追加
ポイントはそれぞれ「スラッグ」名をファイル名に含ませることで、テンプレートを適用できるようになったこと。
これは、テンプレート作成の時に結構便利で、とくに固定ページの場合は結局(1)の方法を使っていたんですが、この方法の場合、まず前提としてテンプレートファイル内に特定のPHPコード(※1)を記述しておかなければならず、面倒でした。
面倒くさがりな自分にはこのコードを挿入するというステップがとにかく面倒くさい。作業工程は限りなく少ないほうがいいと思ってるので、このやり方は嬉しいですねー。
ちなみに、この変更は全然知らなかったのですが、自分が講師をしている職業訓練校での授業で、たまたま生徒が発見しました。偶然「page-スラッグ名.php」になってたため、そのままテンプレートとして機能したことで気づきました。
後で調べてみると、WordPressのオフィシャルドキュメントにもしっかり書かれてました。ほんとはこっちが教えないといけないのにねー。教えられましたわ。やっぱドキュメントはこまめに見とかなあきません。
ほなまた。
※1
<?php /* Template Name: マイページ */ ?>
「マイページ」が固有の名前としてページ作成画面の「ページテンプレー ト」ドロップダウンメニューから選択出来るようになります。
- Web関連
- 5:00 AM
- Comments (0)