index.php

2010年8月4日 水曜日 takafumi

何はともあれここから、とファイルを開くと 2.x 以前との違いに驚きます。とにかく短い。33行しかありません。どうやらループ部分は外部のテンプレートを読み込んでいるようです。その外部のテンプレートを読み込むためのタグは

<?php get_template_part( $slug, $name ) ?>

3.0から追加されたテンプレートタグでこれまであったヘッダー、サイドバー、フッター以外のテンプレートを「パーツ」として読み込みます。この index.php だとループ部分を読み込んでいるわけです。このタグに使えるパラメータは2つ

$slug
(文字列:必須)テンプレートのスラッグ名
$name
(文字列:省略可能)テンプレートの名前

たとえば

<?php get_template_part( hoge, piyo ) ?>

とした場合 hoge-piyo.php が読み込まれるわけです。って、これだけだったら include( TEMPLATEPATH . ‘/hoge-piyo.php’ ); でいいやん、と思ったんですがさらに説明を読むと便利さがにじみ出してきます。

というのは読み込むファイルを特定する過程。まず、もちろん hoge-piyo.php を探します。なければ次に hoge.php を探します。それでも無くて、探していたのが子テーマだった場合は親テーマのフォルダで hoge-piyo.php を探し、無ければ hoge.php を探します。それでもない場合は、無視されます。

つまり「今は必要ないけど使うこともあるかもね、のために name を指定しておく」ということができるので、より柔軟な親テーマ作成が可能になったと言えそうです。あと、いろんな部分を細かく分けておくとか。もちろん hoge は例ですので実際に指定するときはある程度内容がわかるものを指定した方がみんなシアワセになれると思います。

他に書かれているテンプレートタグはおなじみの get_header(); get_sidebar(); get_footer(); の3つ。トータルで4つのテンプレートタグしかありません。html タグもコンテナ部分を囲む div タグが2重にあるだけなので、基本的な構造が非常にわかりやすいです。

おなじみですが3つのタグも軽く触れておくと get_template_part() の name にそれぞれ header,sidebar,footer を指定したようなモノです。ただし親テーマにも該当するファイルが無かった場合、デフォルトテーマ(3.0ではtwentyten)までさかのぼって引っ張ってきてくれます。

カテゴリー:

コメントを残す