• 赤色のリンクは、まだ日本語Codexに存在しないページ・画像です。英語版と併せてご覧ください。(詳細

このWikiはいつでも誰でも編集できます

関数リファレンス/get template part

提供: WordPress Codex 日本語版
移動先: 案内検索

テンプレートパーツ(ヘッダー、サイドバー、フッターを除きます)をテンプレートへ読み込みます。これにより、テーマがコードのセクションを再利用すること、また子テーマが親テーマのセクションを置き換えることが容易になります。

テーマの $slug で指定したテンプレートパーツをインクルードします。$name が指定された場合は、そのパーツの個別版をインクルードします。テーマに {$slug}.php ファイルがなければ何もインクルードしません。

$name パラメータの値は、例えばファイル "{slug}-special.php" をインクルードしたければ "special" にします。

使い方

<?php get_template_part( $slug ); ?>
<?php get_template_part( $slug, $name ); ?>

パラメータ

$slug
文字列) (必須) 一般テンプレートのスラッグ名
初期値: なし
$name
文字列) (オプション) 特定テンプレートの名前
初期値: なし

戻り値

get_template_part は値を返しません。

なお、一致するテンプレートファイルの検索に失敗した場合に警告しません。失敗の有無を確かめたければ以下のコードを使ってください:

<?php assert( "locate_template( array( '$slug-$name.php', '$slug.php' ), false, false )" ); ?>

用例

子テーマで loop.php を使用する

テーマフォルダが wp-content/themes、親テーマが twentyten、子テーマが twentytenchild であるとします。この場合、以下のコードは

<?php get_template_part( 'loop', 'index' ); ?>

下記の優先順で PHP 関数の require() を実行します。

  1. wp-content/themes/twentytenchild/loop-index.php
  2. wp-content/themes/twentyten/loop-index.php
  3. wp-content/themes/twentytenchild/loop.php
  4. wp-content/themes/twentyten/loop.php

テーマサブフォルダの使用

テーマディレクトリ内のサブフォルダでこの関数を使用するためには、単純にフォルダ名をスラッグの前に追加するだけです。例えば、"partials" というフォルダがテーマディレクトリ内にあり、"content-page.php" というテンプレートパーツがそのサブフォルダにある場合、get_template_part() を以下のように用います:

<?php get_template_part( 'partials/content', 'page' ); ?>

一般的な nav.php テンプレートファイルを使用してナビゲーションバーをテーマに追加します。

<?php get_template_part( 'nav' );           // Navigation bar (nav.php) ?>
<?php get_template_part( 'nav', '2' );      // Navigation bar #2 (nav-2.php) ?>
<?php get_template_part( 'nav', 'single' ); // Navigation bar to use in single pages (nav-single.php) ?>


参考

テンプレートに変数を渡す

テンプレートは require によって読み込まれるので、その中からは呼び出し元テーマの PHP コードで定義された変数をアクセスできません。その変数を global 宣言すればアクセス可能です。

しかし get_template_part() の内部で呼び出される load_template() /en は、WP_Query クエリ変数をすべて extract して、読み込むテンプレートのスコープへ入れます。従って set_query_var() を使えば変数をテンプレートパーツで使えるようにできます。

// You wish to make $my_var available to the template part at `content-part.php`
set_query_var( 'my_var', $my_var );
get_template_part( 'content', 'part' );

変更履歴

  • 新規追加: 3.0

ソースファイル

get_template_part()wp-includes/general-template.php にあります。

外部リソース


インクルードタグ: get_header(), get_footer(), get_sidebar(), get_template_part(), get_search_form(), comments_template()


関数リファレンステンプレートタグ目次もご覧ください。


最新英語版: WordPress Codex » Function Reference/get_template_part最新版との差分