WordPressカスタマイズ事例

自作のテンプレートパーツをインクルードする

bodyタグの属性だけ違ってそれ以外は同じ、ということがよくあります。
この場合、ほとんどの部分は同じなのに WordPress標準のテンプレートパーツでやろうとすると header.php を属性のパターン分作る必要があります。
これってメンテビリティ低いですよね。header.php は一つにしておきたい。
同様に、ほんの一部だけ違うだけで他は全部同じ、というときに自作のテンプレートパーツを作ってWordPressに読み込ませたいというケースは結構あって、今回はその方法のご紹介です。
 
結論から言うと、WordPressにはそれ用の関数があります。
 
例として、自作のテンプレート名を top_inc.php として head_incフォルダに格納する場合。
top_inc.php はたとえば以下のような記述になります。
top_inc.php内で headタグ内を記述した header.php をインクルードしてます。

<?php get_header(); ?>
<body id="top">
<header id="global">
<!-- ヘッダー部記述 -->
</header>

そしてこの top_inc.php を ページテンプレートの page.php でインクルードするには、get_template_part という関数を使います。

<?php get_template_part( 'head_inc/top_inc' ); ?>
<?php while ( have_posts() ) : the_post();?>
<?php the_content(); ?>
<?php endwhile; // end of the loop. ?>
<?php get_footer(); ?>

テンプレートファイルをフォルダ内に格納しても、パラメータにディレクトリを記述すれば呼び出せます。
 
こんな感じで top_inc.php のようなテンプレートパーツを複数用意します。
あとは page.php 内で条件分岐を使って呼び出すテンプレートパーツを切り替えれば、header.php と page.php は一つで済みます。
のちのちのメンテナンスを考えれば共通部は一元管理しておきたいですからね。


関連するWordPressカスタマイズ事例