WordPressでテンプレートにテンプレートパーツを読み込む事が出来るのがget_template_part()関数です。
get_template_part()関数の使い方や、引数について解説していきます。
get_template_part()関数の基本的な使い方
まずはget_template_part()関数の基本的な使い方についてです。
例として、parts.phpというファイルを読み込みたい場合は以下のように記述します。
get_template_part( 'parts' );
拡張子無しで読み込みたいファイル名を記述しますが、ファイルの場所はテーマファイルのフォルダから見た相対パスとなります。
incフォルダにparts.phpがある場合は、
get_template_part( 'inc/parts' );
となります。
get_template_part()関数は、require_onceではなくrequireで読み込まれますので、同じパーツを複数回読み込む事も可能です。
次に、get_template_part()関数の引数について解説していきます。
get_template_part()関数のパラメーター・引数について
get_template_part()関数には以下の3つのパラメーターを渡す事ができます。
get_template_part( $slug, $name, $args );
第1引数($slug)にはファイルのパス、第2引数($name)にはテンプレート名(任意)、第3引数には変数(任意)を入れる事ができます。先程の例で言えば、第1引数にはpartsが入ります。
パーツの種類を目的別に用意する場合
例えば、parts.phpを以下のように目的別に用意する場合、
- parts-post.php
- parts-page.php
- parts-archive.php
これらを読み込む場合は第2引数を以下のように指定します。
//parts-post.php
get_template_part( 'parts', 'post' );
//parts-page.php
get_template_part( 'parts', 'page' );
//parts-archive.php
get_template_part( 'parts', 'archive' );
上記のように指定すると、目的別にパーツの種類を変更し読み込む事が出来るようになります。
続いて、第3引数について解説していきます。
第3引数に変数(配列)を渡す
第3引数には変数を渡す事ができます。
例として、index.phpでparts.phpに変数を渡します。
//ineex.php
$args = array(
'val' => '第3引数に渡すテキスト',
);
get_template_part( 'parts', null, $args );
変数$argに配列でテキストを入れました。この変数をテンプレート側で取得します。
※第3引数を使用する際に第2引数が無い場合は上記のように「null」を指定します。
//parts.php
if ( isset( $args ) && isset( $args['val'] ) ) {
$text = $args['val'];
}
echo $text; // 「第3引数に渡すテキスト」と表示される
上記のようにする事でparts.phpで「第3引数に渡すテキスト」と表示されます。
if文で$argや配列内容の有無をチェックをする事で、空の場合のエラーを回避できます。
この第3引数を使用する事で動的な表示が出来るようになります。
さいごに
いかがでしたでしょうか。
パーツを目的別に分けて使用する事で管理がしやすくなります。便利な関数になりますので積極的に使用していきましょう。