WEB制作のための情報サイト / unazuki Library

get_template_part()

基本構文と使い方(引数・実行結果)

基本構文

テンプレートファイルにテンプレートパーツを呼び出して実行します。

get_template_part($slug,$name,$args);

引数

引数必須/任意引数に指定するもの
第1引数
$slug
必須テンプレート名を文字列で指定
※テーマディレクトリからのパスを含めて指定可能
例:get_template_part('/inc/filename')
この場合はテーマディレクトリ直下のincディレクトリ内のfilename.phpを呼び出す。
第2引数
$name
任意テンプレート名の詳細名を文字列で指定
初期値:null
第3引数
$args
任意テンプレートパーツ呼び出し時に引き継ぐ値を配列で指定
初期値:[](空の配列)

実行結果

指定したテンプレートファイルを呼び出して実行します。

例1.テーマディレクトリ直下のファイルを呼び出す

下記の例ではテーマディレクトリ直下のservice.phpを呼び出して実行します。

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

例2.指定したディレクトリからテンプレートパーツを呼び出す(1)

下記の例ではテーマディレクトリ直下のincディレクトリにあるservice.phpを呼び出して実行します。

<?php get_template_part('/inc/service'); ?>

例3.第2引数の使い方 ー テンプレートファイルの詳細名を指定する

下記の例ではテーマディレクトリ直下のincディレクトリにあるbanner-service.phpを呼び出して実行します。

<?php get_template_part('/inc/banner', 'service'); ?>

第2引数を使わずに、get_template_part('/inc/banner-service') としても結果は同じです。

例4.第3引数の使い方 ー 呼び出し時に値を引き継ぐ

下記の例ではservice.phpを呼び出す際に、任意の値をclassという配列のプロパティに格納して渡しています。

<?php get_template_part('/inc/service', '', ['class' => 'specific-class']); ?>

第3引数で渡された値は、配列$argsに格納されます。下記のように、service.php側で$argsからclassの値を受け取り、テンプレートパーツにclass名を追加することができます。

<div class="service <?php echo $args['class']; ?>">
	<!-- 任意のHTML -->
</div>

このようにテンプレートパーツ呼び出し時に値を指定して、テンプレートパーツの中で値を引き継ぐことができます。これにより、テンプレートパーツにちょっとした柔軟性を持たせることができます。

学習者向け補足情報

【引数とは】
テンプレートタグ(=関数)を実行する際に、引数を渡すことができるテンプレートタグがあります。引数は、関数の中で使われるので、渡す引数の値によって実行結果が変わってきます。何を処理したいのか、どのようなデータを取得したいのかによって渡す引数が変わります。

【引数について】

  • 指定できる引数の数はテンプレートタグによって異なります。(引数なしもあり)
  • 引数ごとに必須 / 任意が決まっています。(必須は必ず指定、任意は指定しなければ初期値)
  • 引数名(例:$post)は仕様の便宜上の名前と考えてください。(この名前自体はテンプレートタグ実行に関係しません。各引数に何を指定するのかを理解していればOKです。)

※当サイトでは初期値とデフォルト値の言葉の定義を区別せず、原則統一して初期値を採用しています。

関連するテンプレートタグ

テンプレートタグ 説明
body_class() body要素に関するclass名を表示する。
do_shortcode() ショートコードが実行された文字列を返す。
add_shortcode() 任意のショートコードを作成して追加する。
wp_body_open() アクションフックwp_body_openに登録されている関数を実行する。
wp_footer() アクションフックwp_footerに登録されている関数を実行する。
wp_head() アクションフックwp_headに登録されている関数を実行する。
get_previous_post() 現在の投稿の前の投稿情報を取得する。
get_next_post() 現在の投稿の次の投稿情報を取得する。
previous_posts_link() アーカイブページにおいて次のページリンクを表示する。
next_posts_link() アーカイブページにおいて次のページリンクを表示する。
get_next_posts_link() アーカイブページにおいて次のページリンクのHTMLを取得する。
get_previous_posts_link() アーカイブページにおいて前のページリンクのHTMLを取得する。