Back to Blog

get_template_part関数の使い方

WordPress

2024/03/16

これは、他のテンプレートを現在のテンプレート内に埋め込む関数です。
直接コードを記述せず、別ファイルとして1行のコードで呼び出せるので、管理や編集が楽になります。
headerやfooterなど主要なパーツは「 get_header();」や「 get_footer();」というシンプルな関数が予め用意されています。get_template_partはそれ以外の、自作したテンプレートを読み込むときに使います。
get_template_partの使い方について実例を使って解説します。

get_template_part関数の基本構文
get_template_partは以下のように最大で2つの引数をとります。

get_template_part( $slug, $name );

$slug: テンプレートのパス(必須)
$name: 特定テンプレート名(省略可)
指定したファイルが見つからなかったときは、「false」を返します(v5.5.0以降)。

ここではWordpressのフィルの命名ルールに沿っています。
WordPressのファイル命名規則
・{$slug}.php
・{$slug}-{$name}.php
例えば、投稿の個別ページを読み込みたい場合に、そのテンプレートのファイル名が「single.php」の場合は、「get_template_part( ’single’ );」となります。

「single-product.php」という個別のテンプレートを呼び出したい場合は、「get_template_part( ’single’, ‘product’ );」となります。

ファイルが深い階層に入っている場合
テンプレートファイルのパスの指定は、テーマディレクトリからの相対パスを記述します。

上記例では、single.phpはテーマディレクトリの直下にあるため、’single.php’とすればOK。もし、更に深い階層構造にある場合は、ディレクトリ名/で階層を指定します。

例えば、「wp-content > themes > テーマディレクトリ名 > template-parts > post > content-image.php」のファイルを呼び出したい場合は以下のように指定します。

get_template_part( ’template-parts/post/content’, ‘image’ );

WordPressのファイル読み込み順序(ファイル階層)
WordPressがファイルを読み込む順序について補足しておきます。

WordPressはファイル名によって優先的に読み込むファイルを分けています。例えば投稿ページの場合、優先度の高い順に以下のようになります。

投稿ページのファイルの読み込み優先順位
・single-{post_type}.php
・single.php
・singular.php
・index.php
もし1~3のファイルが作成されていない場合は、index.phpが使われます。ちなみに、index.phpはWordpressを構築するときに必須のファイルです。

これらは、Wordpressが自動で判断するものですが、get_template_part関数を使えば、他のテンプレートを自分で選択して埋め込めるようになります。

投稿ページ以外のフィアル階層は以下のようになっています。

Related Posts