使用Drupal 7和Views 3,我试图获得对Views_embed_view的调用结果,该调用在hook_prepocess_node中带有上下文过滤器参数,用于嵌入到节点模板中。
该视图使用"字段"显示设置,包括"内容:标题"和一些自定义字段。当我从视图UI中预览带有上下文过滤器参数的视图时,一切都按预期进行,但当我嵌入视图时,不会加载fields API中的任何节点字段(仅加载title和节点ID等内置属性)。
知道这里发生了什么吗?
sites/all/themes/XX/template.php
function XXX_preprocess_node(&$vars, $hook) {
$node = $vars['node'];
$vars['views__deals__single'] = views_embed_view('deals_single', 'page_1', $node->nid);
}
sites/all/themes/XXX/templates/node--deal.php
// ...
echo 'THE VIEW SHOULD BE HERE:';
echo $views__deals__single;
// ...
echo的结果是节点标题和其他视图字段的HTML包装,包括标签,但它们的内容是空的,这与视图预览不同。
救命!
您可以直接将其放在node.tpl.php模板中:
<?php print views_embed_view('deals_single', 'page_1', $node->nid); ?>