回答:
Drupal 7では、このコードを使用できます。
ビューページの場合
print views_embed_view('name_of_view','page_1', $node->nid);
ビューブロックの場合
print views_embed_view('faculty_core','block_1', $node->nid);
ノードテンプレートにビューを表示するには、次のコードを使用します。
// Load the view.
$view = views_get_view('machine_name_of_view');
// Set the active display.
$view->set_display('your_view_display_name');
// Set any needed argument.
$view->set_arguments(array(arg(0), arg(1)));
// Execute the view.
$view->execute();
// Render the view.
print $view->render();
pre_execute()
前に使用することを検討しexecute()
ます。
何故なの:
print views_embed_view($view_machine_name, $view_display_name, $arg1, $arg2);
$ arg、$ arg2などはオプションです。
または、Viewfieldモジュールを使用して、ビューをフィールドとして埋め込みます。
1つの解決策は、パネライザを使用してそれぞれのノードのコンテンツをオーバーライドすることです。
たとえば、ビューをアタッチする必要のある1回限りのページがたくさんあるとします。
1)ページコンテンツタイプを使用するか、特にパネル化される新しいコンテンツタイプを作成します。
2)そのコンテンツタイプに対してパネライザを有効にします。ページごとに調整される複数のパネライザディスプレイをセットアップできるように、「レコードごとのディスプレイ選択を許可する」に設定してください。(各パネライザディスプレイには、独自の一連のビューをアタッチできます)
3)ここから、ビューを作成し(コンテンツペインを使用したい)、選択したパネライザコンテンツ表示に追加します。
これにより、独自のフィールドセットを実際に必要としないが、他のエンティティの参照(フィールドとして)またはビューの参照に使用される可能性がある単一のコンテンツタイプを再利用できます。
段落モジュールをスローすると、スイスアーミーナイフのコンテンツタイプがあります。そういえば、それはこの目的に使用されるカスタムコンテンツタイプの完全な名前になります...うーん...
非常に構成可能なDrupal 7および8モジュールはviews_field_formatterであり、フィールドフォーマッターとしてビューを埋め込むことができます。