WordPressのテンプレートファイルでincludeするための色々な方法

2012-09-24

WordPressで制作するWebサイトは比較的ボリュームのあるサイトになる事が多い為、テンプレートファイル側に書く処理も膨大になりがちです。

そんな時、プログラマー的な発想をすると「共通化したい!」と強く思います。
(でも共通化をしすぎると逆にコードの見通しが悪くなるケースもあるので、バランスをとって程々に収めるのが重要です。)

今回はその方法を幾つかメモしておきます。


1.WordPressのテンプレートタグを利用する

WordPressではテンプレート階層を元にファイルを分割するのが前提となっていますので、下記のようなタグを使用するのがオーソドックスな方法です。

<?php
  get_header(); //header.phpを読み込む
  get_sidebar(); //sidebar.phpを読み込む
  get_footer(); //footer.phpを読み込む
?>

パラメーターを与える事で下記のような表記も可能です。
<?php
  get_sidebar('sub'); //sidebar-sub.phpを読み込む
?>


2.PHPのinclude文を利用する

こちらはPHPのinclude文を使用する方法です。
PHP的には全然特殊な方法ではありませんが、意外と気づかない方法だったりします。
パスの指定にはWordPressのグローバル定数「TEMPLATEPATH」を使用すると良いでしょう。
<?php
  include TEMPLATEPATH . '/sample_function.php';
  include TEMPLATEPATH . '/common/sample_function.php'; //下層ディレクトリも指定可能
?>
WordPressのテンプレートファイルは基本的に同一ディレクトリにフラットに配置しますが、この方法だと下層ディレクトリにファイルを配置できますね。

「テンプレートファイルは分ける必要があるけど記述する内容は同じ処理。でもfunction.phpの中に書くのもちょっと違う。」といった場合にもこれで共通化できます。