サイトの特定のページにテーマを設定するために、node--2.tpl.php というファイルを作成しました。私が読んだ他のいくつかのチュートリアルに従って、これを私のtemplate.phpファイルに追加しました:
function mtheme_preprocess_node(&$vars) {
if (request_path() == 'node/2') {
$vars['theme_hook_suggestions'][] = 'node__2';
}
}
このページでは、schools_landing という領域をレンダリングしたいと考えました。そのため、node--2.tpl.php は次のようになります。
<?php print render($page['schools_landing']); ?>
その後、管理者オーバーレイの上部に次のエラー メッセージが表示されるようになりました。
Warning: Cannot use a scalar value as an array in include() (line 1 of /home/something/public_html/project/sites/all/themes/mtheme/node--2.tpl.php).
さらに、node--2.tpl.php ファイルにテキストを書き込むことができ、(デフォルトのページ コンテンツではなく) 正常に表示されますが、領域内でレンダリングするブロックをまったく取得できません。school_landing ブロックにブロックを割り当てると、ページには何も表示されません。
- これは、特定のページでカスタム コンテンツを定義する正しいプロセスですか?
- スカラー値を配列エラー メッセージとして表示するエラーを修正するにはどうすればよいですか?
- リージョンでブロックのレンダリングを開始するにはどうすればよいですか?