WordPressでテンプレートファイルを読み込む方法
例えばWordPressのテンプレートファイル「header.php」ですが、コピーして「header-○○○.php」と名付けることで別のヘッダーファイル(サブヘッダーファイル)として扱うことができます。「カスタム投稿タイプや固定ページ用に別のヘッダーファイルが欲しい!!」なんて時に、ページに合わせたヘッダーファイルを個々に用意できる訳です。
今回は header-sample.phpというサブヘッダーファイルがある時に、「どのようにしてサブヘッダーファイルを読み込ませるか?」を3パターンに絞って紹介させていただきます。
※WordPress3.0以前だと、load_template()とかあったかと思うのですが、今回はその辺は割愛しています。
<?php get_header();?>
普通に使うとメインのヘッダーファイル「header.php」を取ってきますが、パラメータに $name を指定できるので、
1 |
<?php get_header('sample'); ?> |
とすることで、サブヘッダーファイルである header-sample.php を読み込ませることができます。
当然ながら、footer-sampleやsidebar-sampleなど、ヘッダー以外のテンプレートファイルは読み込めません。
また、サブヘッダーファイルがない場合は、メインのヘッダーファイル「header.php」が読み込まれます。
<?php include(”);?>
個人的にもちょくちょく使います。TEMPLATEPATHで、テーマファイル(親テーマ)があるフォルダまでのパスを取得できます。
と言うことで「子テーマがある場合はどうなんだろう…」と考えてしまいますが、親しかテ−マしか持っていない場合はこの方法でも問題ないかと。
1 |
<?php include(TEMPLATEPATH .'/header-sample.php');?> |
<?php get_template_part(); ?>
WordPress 3系から使える便利な関数です。Codexでも
(ヘッダー、サイドバー、フッター以外の)テンプレートパーツをテンプレートに読み込みます。
テーマのその名前のテンプレートパーツをインクルードします。name を指定した場合は、特定の部分をインクルードします。{slug}.php ファイルが無い場合は、インクルードしません。
パラメータに関しては”{slug}-{name}.php”を呼び出します。
href=”http://wpdocs.sourceforge.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_template_part
とのことですので、以下のようにサブヘッダーファイルを読み込ませます。
1 |
<?php get_template_part('header-sample');?> |
これだと header に限らず、footer-sampleやsidebar-sampleなど別のパーツであっても楽々読み込めます。
また、get_template_part()は「子テーマ」→「親テーマ」の順にファイルがあるかどうか?を探してきてくれますので、<?php include(”); ?>と違って子テーマがある場合でも使えます。
コメント