web-dev-qa-db-ja.com

Get_template_partでの変数の使用

私の知る限り( get_template_part codex から)get_template_partはPHP require関数のまわりのラッパーです。

それで、私がページテンプレートファイルで作成した変数を持っているならば。 $message、私はあなたが直接テンプレート部分でその変数を使うことができると思いました

テンプレートファイルでは:

<?php 
$message = 'my message';
get_template_part('messages'); 
?>

それからテンプレートパートmessages.phpで:

<?php echo $message; ?>

しかしエコーは何も表示しません。

4
icc97

D'oh、それは関数の中にglobalが必要です。

messages.php:

<?php 
global $message; 
echo $message; 
?>
7
icc97

出典

含めるテンプレートファイルを見つけるには locate_template を使用できます。グローバルを使用するよりも少しクリーンです。

すなわちrequire(locate_template('messages'));

4
Sam

Get_template_part()の代わりにlocate_template()を使用すると、そのスクリプト内のすべての変数を使用できます。

<?php include(locate_template('message.php')); ?>
<?php echo $message; ?>

エコー$メッセージは動作します。

0
Kalo Heem