メモ: ノード テンプレート (node.tpl.php) 内で、リージョンを表示する

リージョンに割り当てたブロックとかを、ノード(テンプレート: node.tpl.php )内で呼び出す(表示・出力)させる方法のメモ。

そのままでは呼び出せない

リージョンの内容は、そのままでは page.tpl.php でしか呼び出せず、 node.tpl.php で利用できません。
このため、template.php で、ノードが使える変数に格納し直してあげる必要があります。

方法

node.tpl.php 内で、表示したいリージョンが hoge だとして、ブロックとして表示するには、 template.php 内で、

function phptemplate_preprocess_node(&$variables, $hook) {
	$variables['hoge'] = theme('blocks', 'hoge');
}

とし、

node.tpl.php 内で、

<?php if ($hoge): ?>
	<div id="hoge"><?php print $hoge; ?></div>
<?php endif; ?>

みたいにします。

$variables は、ノードで表示される情報が格納されている配列なので、そこにリージョンの内容を追加してあげれば、ノード内で利用できるようになるわけですね。