WordPressで予め用意されている「header.php」「footer.php」などとは別に、任意で作成したテンプレートを読み込ませたいときのやり方です。
Contents
インクルードタグ
WordPressでは、インクルードタグというテンプレートを呼び出すための関数が用意させています。このインクルードタグを使えば、あるテンプレートファイルの中で、別のテンプレートファイルを実行することが可能です。
一般的なもので、「header.php」、「footer.php」や「slidebar.php」などがあり、呼び出す時は下記のように記述します。
// header.php
<?php get_header(); ?>
// footer.php
<?php get_footer(); ?>
// sidebar.php
<?php get_sidebar(); ?>
get_template_part();
get_template_part();
もWordPressで用意されているインクルードタグです。
テーマの中で何度も使用しているような記述がある場合など、毎回コピペするのは大変です。なので新たに「template.php」というファイルを作成して、その中に流用したい内容を記述し、get_template_part('');
で呼び出すことで、サイトの管理も楽になります。
<?php get_template_part('template'); ?>
インクルードの仕方
作成したテンプレートを呼び出す場合、そのファイルがあるディレクトリによって記述の仕方が少し変わりますが、テンプレートファイル名は必ず指定する必要があります。
例えば、「sample.php」という名前のテンプレートファイルをテーマフォルダ直下(header.phpやfooter.phpと同じ階層)に作成した場合、テンプレートを呼び出したい箇所に下記のように記述します。
<?php get_template_part('sample'); /?>
また、テーマフォルダ直下の「template」という名前のフォルダ内に「sample.php」を作成した場合は、以下のように記述します。
<?php get_template_part('template/sample'); /?>
さらに、「sample-single.php」というファイルを作成した場合はそれぞれ下記のように記述し、テンプレートをインクルードします。
// テーマ直下の場合
<?php get_template_part('sample', 'single'); /?>
// テーマ直下のtemplateフォルダ内に作成した場合
<?php get_template_part('template/sample', 'single'); /?>
上記のように、インクルードする時は必ずテンプレートファイル名($slug)を指定し、更にテンプレートファイルに追加で名前がある場合($name)はそれも一緒に指定します。
今回の例でいうと「sample」が$slug
「single」が$name
に当たります。