0

Drupal 7 と Views 3 では、ノード テンプレートに埋め込むために、hook_preprocess_node でコンテキスト フィルター引数を使用して views_embed_view を呼び出した結果を取得しようとしています。

ビューは、「コンテンツ: タイトル」といくつかのカスタム フィールドを含むフィールド表示設定を使用しています。ビュー UI からコンテキスト フィルター引数を使用してビューをプレビューすると、すべてが期待どおりに機能しますが、ビューを埋め込むと、フィールド API からノードのフィールドが読み込まれません (タイトルやノード ID などの組み込み属性のみが読み込まれます)。 )。

ここで何が起こっているのか分かりますか?

サイト/すべて/テーマ/XXX/template.php

function XXX_preprocess_node(&$vars, $hook) {
  $node = $vars['node'];
  $vars['views__deals__single'] = views_embed_view('deals_single', 'page_1', $node->nid);
}

サイト/すべて/テーマ/XXX/テンプレート/ノード--deal.php

// ...
echo 'THE VIEW SHOULD BE HERE:';
echo $views__deals__single;
// ...

エコーの結果は、ノード タイトルと、ラベルを含む他のビュー フィールドの HTML ラッパーですが、ビュー プレビューとは異なり、それらのコンテンツは空です。

ヘルプ!

4

1 に答える 1

0

node.tpl.php テンプレートに直接配置できます。

<?php print views_embed_view('deals_single', 'page_1', $node->nid); ?>
于 2013-03-19T05:35:01.143 に答える