当サイト、Codex 日本語版は今後積極的な更新は行わない予定です。後継となる新ユーザーマニュアルは、https://ja.wordpress.org/support/ にあります。
万が一、当サイトで重大な問題を発見した際などは、フォーラムWordSlack #docs チャンネルでお知らせください。</p>

「関数リファレンス/get template part」の版間の差分

提供: WordPress Codex 日本語版
移動先: 案内検索
(外部リソース)
(最新のマージ)
13行目: 13行目:
 
== 使い方 ==
 
== 使い方 ==
 
</div>
 
</div>
 +
 +
<?php get_template_part( $slug ); ?>
  
 
  <?php get_template_part( $slug, $name ); ?>
 
  <?php get_template_part( $slug, $name ); ?>
 +
 +
<code>get_template_part</code> doesn't return a value and doesn't warn if it fails to find a matching template file.
 +
 +
If you want to hear about failures, use:
 +
 +
    <?php assert( "locate_template( array('$slug-$name.php', '$name.php'), true, false )" ); ?>
  
 
<div id="Parameters">
 
<div id="Parameters">
35行目: 43行目:
 
下記の優先順でPHP関数の[http://www.php.net/manual/en/function.require.php require()]を実行します。
 
下記の優先順でPHP関数の[http://www.php.net/manual/en/function.require.php require()]を実行します。
 
:#''wp-content/themes/twentytenchild/loop-index.php''
 
:#''wp-content/themes/twentytenchild/loop-index.php''
:#''wp-content/themes/twentytenchild/loop.php''
 
 
:#''wp-content/themes/twentyten/loop-index.php''
 
:#''wp-content/themes/twentyten/loop-index.php''
 +
:#''wp-content/themes/twentytenchild/loop.php''
 
:#''wp-content/themes/twentyten/loop.php''
 
:#''wp-content/themes/twentyten/loop.php''
 
   
 
   
61行目: 69行目:
 
* Uses: [[関数リファレンス/locate_template|locate_template()]]/[[:en:Function_Reference/locate_template|en]]
 
* Uses: [[関数リファレンス/locate_template|locate_template()]]/[[:en:Function_Reference/locate_template|en]]
 
* Uses: [[関数リファレンス/do_action|do_action()]]/[[:en:Function_Reference/do_action|en]] Calls 'get_template_part_{$slug}' action.
 
* Uses: [[関数リファレンス/do_action|do_action()]]/[[:en:Function_Reference/do_action|en]] Calls 'get_template_part_{$slug}' action.
 +
 +
=== テンプレートに変数を渡す ===
 +
Because the template is being <tt>require</tt>d, it will not have access to any variables you define within the calling theme's PHP code, unless you explicitly declare them as <code>global</code>.
 +
 +
However, [[関数リファレンス/load_template|load_template()]] /[[:en:Function_Reference/load_template|en]], which is called indirectly by <tt>get_template_part()</tt> <tt>extract</tt>s all of the [[クラスリファレンス/WP_Query|WP_Query]] query variables, into the scope of the loaded template. So you can use [[関数リファレンス/set_query_var|set_query_var()]] to make your variable available to the template part.
 +
 +
<pre>
 +
// 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' );
 +
</pre>
  
 
== 変更履歴 ==
 
== 変更履歴 ==
* Since: [[Version 3.0|3.0]]
+
* 新規追加: [[Version 3.0|3.0]]
  
 
<div id="Source_File">
 
<div id="Source_File">
70行目: 89行目:
 
<tt>get_template_part()</tt> は {{Source|wp-includes/general-template.php|3.0}} にあります。
 
<tt>get_template_part()</tt> は {{Source|wp-includes/general-template.php|3.0}} にあります。
  
{{原文|Function Reference/get_template_part|123220}}<!-- 11:56, 16 November 2012 Alchymyth 版 -->
+
 
  
 
<div id="External_resources">
 
<div id="External_resources">
83行目: 102行目:
 
</div>
 
</div>
 
{{Include Tags}}
 
{{Include Tags}}
 +
 +
{{NeedTrans}}
 +
 
{{Tag Footer}}
 
{{Tag Footer}}
  
88行目: 110行目:
 
[[Category:関数]]
 
[[Category:関数]]
 
[[Category:wp3.0]]
 
[[Category:wp3.0]]
 +
 +
{{原文|Function Reference/get_template_part|151566}}<!-- 18:08, 12 May 2015‎ Transom  版 -->
  
 
[[en:Function Reference/get_template_part]]
 
[[en:Function Reference/get_template_part]]

2015年6月3日 (水) 10:50時点における版

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

テーマのその名前のテンプレートパーツをインクルードします。name が指定された場合は、特定の部分をインクルードします。テーマに{slug}.php ファイルが無い場合は、インクルードしません。

パラメータに関しては、"{slug}-{name}.php" を呼び出します。

使い方

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

get_template_part doesn't return a value and doesn't warn if it fails to find a matching template file.

If you want to hear about failures, use:

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

パラメータ

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

用例

子テーマで 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) ?>

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

Because the template is being required, it will not have access to any variables you define within the calling theme's PHP code, unless you explicitly declare them as global.

However, load_template() /en, which is called indirectly by get_template_part() extracts all of the WP_Query query variables, into the scope of the loaded template. So you can use set_query_var() to make your variable available to the template part.

// 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()


このページ「関数リファレンス/get template part」は未翻訳です。和訳や日本語情報を加筆してくださる協力者を求めています


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

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