これを実現するには、ページを作成し、それに付随するノード テンプレートを作成します。新しいノードを作成することから始めて、テンプレートの名前の NID を記録します。
次に、テンプレートで新しいファイルを作成し、次の方法で名前を付けます。node--[node id].tpl.php
次に、そのファイルに次のヘルパー関数を貼り付けます (または、サイトの他の場所で使用する場合は、template.php に配置できます)。
/**
* Gets the resulting output of a view as an array of rows,
* each containing the rendered fields of the view
*/
function views_get_rendered_fields($name, $display_id = NULL) {
$args = func_get_args();
array_shift($args); // remove $name
if (count($args)) {
array_shift($args); // remove $display_id
}
$view = views_get_view($name);
if (is_object($view)) {
if (is_array($args)) {
$view->set_arguments($args);
}
if (is_string($display_id)) {
$view->set_display($display_id);
}
else {
$view->init_display();
}
$view->pre_execute();
$view->execute();
$view->render();
//dd($view->style_plugin);
return $view->style_plugin->rendered_fields;
} else {
return array();
}
}
次に、次のコードをテンプレートに追加します。
<?php
$cars = views_get_rendered_fields('view name', 'default', [...any arguments to be passed to the view]);
foreach ($cars as $car): ?>
<div>Put your mockup in here. It might be helpful to run <?php die('<pre>'.print_r($car, 1).'</pre>'); ?> to see what the $car array looks like.</div>
<?php endforeach;
?>
コード内のプレースホルダーを、マークアップにしたいものに変更するだけで、設定が完了します!
<?php die('<pre>'.print_r($car,1).'</pre>'); ?>
上で述べたように、配列が印刷されたように見えるものを視覚的に表現することは常に役に立ちます。
views_get_rendered_fields
ビューの出力を完全にカスタマイズできるため、コードで常に使用しています。
注意:新しいテンプレートを作成するたびに、必ずキャッシュをクリアしてください。
頑張ってください!