• RSS

[WP]WordPressでテンプレートファイルを読み込む方法のまとめ

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

例えばWordPressのテンプレートファイル「header.php」ですが、コピーして「header-○○○.php」と名付けることで別のヘッダーファイル(サブヘッダーファイル)として扱うことができます。

「カスタム投稿タイプや固定ページ用に別のヘッダーファイルが欲しい!!」なんて時に、ページに合わせたヘッダーファイルを個々に用意できる訳です。

今回は header-sample.php というサブヘッダーファイルがある時に、「どのようにしてサブヘッダーファイルを読み込ませるか?」を3パターンに絞って紹介させていただきます。

※WordPress3.0 以前だと、load_template() とかあったかと思うのですが、今回はその辺は割愛しています。

<?php get_header(); ?>

普通に使うとメインのヘッダーファイル「header.php」を取ってきますが、パラメータに $name を指定できるので、
&lt;?php get_header('sample'); ?&gt;
とすることで、サブヘッダーファイルである header-sample.php を読み込ませることができます。

当然ながら、footer-sample や sidebar-sample など、ヘッダー以外のテンプレートファイルは読み込めません。

また、サブヘッダーファイルがない場合は、メインのヘッダーファイル「header.php」が読み込まれます。


<?php include(”); ?>

個人的にもちょくちょく使います。

TEMPLATEPATH で、テーマファイル(親テーマ)があるフォルダまでのパスを取得できます。

と言うことで「子テーマがある場合はどうなんだろう…」と考えてしまいますが、親しかテ−マしか持っていない場合はこの方法でも問題ないかと。
&lt;?php include(TEMPLATEPATH .'/header-sample.php'); ?&gt;


<?php get_template_part(); ?>

WordPress 3系から使える便利な関数です。

Codex でも

(ヘッダー、サイドバー、フッター以外の)テンプレートパーツをテンプレートに読み込みます。

テーマのその名前のテンプレートパーツをインクルードします。name を指定した場合は、特定の部分をインクルードします。{slug}.php ファイルが無い場合は、インクルードしません。

パラメータに関しては、”{slug}-{name}.php” を呼び出します。

関数リファレンス/get template part

とのことですので、以下のようにサブヘッダーファイルを読み込ませます。

&lt;?php get_template_part('header-sample'); ?&gt;
これだと header に限らず、footer-sample や sidebar-sample など別のパーツであっても楽々読み込めます。

また、get_template_part() は「子テーマ」→「親テーマ」の順にファイルがあるかどうか?を探してきてくれますので、<?php include(”); ?> と違って子テーマがある場合でも使えます。



  • このエントリーをはてなブックマークに追加
  • follow us in feedly

コメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください