page.html.twigテンプレートでビューブロックをレンダリングする必要があります。D7ではこれを行います。
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print render($block['content']);
?>
Drupal 8では、module_invokeは非推奨であり、これを使用することをお勧めします(ブロックの名前を2番目のパラメーターとして追加しました)。
Drupal::moduleHandler()->invoke($block, 'views_block__blog_block_1', $args = array());
いくつか試してみました。最初に小枝テンプレートでそれをやろうとしましたが、小枝テンプレートでphp関数を呼び出す方法がわかりませんので、あまりうまくいきませんでした。
次に、.themeファイルのpreprocess_page()関数で関数を呼び出しましたが、動作させる前に、Twigテンプレート内で変数を動作させるために簡単なものを試してみましたが、どちらも動作しませんでした:
.themeファイルのtemplate_preprocess_page(&$ vars)関数で:
$test = 'Hello World';
$vars['$my_var'] = $test;
Twigテンプレート内でmy_varを呼び出そうとしましたが、機能しませんでした。「サイトにエラーがあります。管理者に連絡してください」というエラーメッセージが表示されました。
要約すると、ここに私の質問があります:
- Twigテンプレート内で変数を使用可能にするにはどうすればよいですか?
- Twigテンプレート内で関数を呼び出すにはどうすればよいですか?
- .themeファイルまたはtwigテンプレート内にブロックをレンダリングしますか?