get template part()

get template part( パラメータ )

get_template_part() 関数は、WordPress テーマ内で他のテンプレートファイルを読み込むために使用されます。これは特に、同じコードを複数のテンプレートで使用する必要がある場合に便利です。

目次

記述方法

基本的な記述方法

<?php get_template_part( 'folder/file' ); ?>

このコードは、テーマ内の folder フォルダ内にある file.php を読み込みます。たとえば、example.php を読み込むには、get_template_part( 'example' ); というように使います。

フォールバックテンプレート

テンプレートが見つからなかった場合に、代替のテンプレートを読み込むこともできます。

<?php get_template_part( 'folder/file', 'fallback' ); ?>

このコードは、まずfolder/file.php を探しますが、見つからない場合は folder/file-fallback.php を読み込みます。

フォルダを指定する

テンプレートファイルがサブフォルダ内にある場合は、サブフォルダを指定できます。

<?php get_template_part( 'folder/subfolder/file' ); ?>

変数の使用

get_template_part() に変数を渡すこともできます。

<?php 
$post_type = 'custom';
get_template_part( 'content', $post_type );
?>

この場合、content-custom.php ファイルを読み込みます。

条件付き読み込み

特定の条件下でのみテンプレートファイルを読み込むこともできます。

<?php if ( is_single() ) {
    get_template_part( 'single-post' );
} else {
    get_template_part( 'archive' );
} ?>

この例では、シングルページが表示されている場合は single-post.php を読み込み、それ以外の場合は archive.php を読み込みます。

get_template_part()の詳細

get_template_part()のテンプレートファイルの探索方法

WordPressは、get_template_part() 関数を使用して指定されたテンプレートファイルを探します。その探し出す手順は次の通りです。

  • 最初に、子テーマ内のテンプレートファイルを探します。見つからない場合は、親テーマ内を探します。
  • テーマファイルがある場所は、テーマのルートディレクトリです。
  • ファイル名は拡張子 .php を含まないで指定します。

テンプレートファイルの優先順位

同じ名前のテンプレートファイルが親テーマと子テーマの両方に存在する場合、WordPress はどちらを使用するかを決定するために、テーマの優先順位を考慮します。基本的なルールは次の通りです。

  • 子テーマにテンプレートファイルがある場合、そのファイルが優先されます。
  • 子テーマにテンプレートファイルがない場合は、親テーマのファイルが使用されます。

テンプレートファイルの柔軟な使用

get_template_part() を使うことで、テーマ内の異なる部分で同じコードを再利用することができます。たとえば、共通のヘッダーやフッター、サイドバーなどがあります。これにより、コードの保守性が向上し、修正が簡単になります。ブログのサイトでは広告タグを管理するときに活用したりします。

テンプレートパーツの動的な読み込み

get_template_part() は、変数を使用して動的にテンプレートファイルを読み込むこともできます。これにより、同じコードを使って異なるコンテキストで異なるテンプレートファイルを読み込むことが可能です。

フォールバックテンプレートの使用

テーマ内にフォールバックテンプレートを提供することで、エラーや不足の際に備えることができます。get_template_part() は、第二引数に -fallback を指定することで、フォールバックテンプレートを読み込むことができます。

テンプレートファイルの構造化

get_template_part() を使うことで、テーマの構造をより理にかなった形に整理することができます。例えば、ループ内で使用するテンプレートファイルを content.php として分離し、コードを整理することができます。

get_template_part() 関数は、WordPress テーマ開発において非常に便利であり、コードの再利用性を高め、テーマの保守性を向上させるのに役立ちます。

get template partの記述例

例えばあるウェブサイトでサイトのページ下部の広告バナーの部分ではindex.phpsingle.phpcategory.phppage.phptag.phpなどのテンプレートの広告バナーを表示させたい部分に…

<?php get_template_part( 'banner' ); ?>

と、記述しています。そしてbanner.phpというファイルには

<div class="banner">
	<div class="banner1">
	  <a href="http://example.com"><img src="https://*****.comw/banner1.jpg" alt="banner1"></a>
	</div>
	<div class="banner2">
	  <a href="http://example.com"><img src="https://*****.comw/banner2.jpg" alt="banner2"></a>
	</div>
	<div class="banner3">
	  <a href="http://example.com"><img src="https://*****.comw/banner3.jpg" alt="banner3"></a>
	</div>
</div>

こんな感じの記述をしていたりします。このようにすることでバナー画像を一つ差し替えたいと思ったときにindex.phpsingle.phpcategory.phppage.phptag.phpなどのテンプレートすべてで変更する必要がなく、banner.phpだけ編集すればよいので効率的です。

そしてもし、tag.phpだけ別の広告バナーを表示させたいと思ったとき、banner-tag.phpというファイルを作成しbanner.phpと同様に

<div class="banner">
	<div class="banner1">
	  <a href="http://example.com"><img src="https://*****.comw/banner3.jpg" alt="banner3"></a>
	</div>
	<div class="banner2">
	  <a href="http://example.com"><img src="https://*****.comw/banner4.jpg" alt="banner4"></a>
	</div>
	<div class="banner3">
	  <a href="http://example.com"><img src="https://*****.comw/banner5.jpg" alt="banner5"></a>
	</div>
</div>

のように記述します。そしてtag.phpには

<?php get_template_part( 'banner' , 'tag' ); ?>

と、記述します。こうするとtag.phpではbanner-tag.phpを読み込みます。そして仮にbanner-tag.phpが存在しなかった場合にはbanner.phpを読み込みます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次