如何为特定的视图模式提供模板?

How to provide template for particular view mode?

我想用模板为搜索结果视图模式设置主题。

我以为将模板文件命名为 node--article--search-result.tpl.php 就可以了,但我显然错了。

我知道我可以做 node--article.tpl.php 并在此检查 $view_mode 中,但这对于我不想模板化的所有其他视图模式来说很尴尬。

想法?

在节点预处理函数中添加主题挂钩建议应该可以解决问题:

function YOURMODULE_preprocess_node(&$vars) {
  if ($vars['node']->type == 'article' && $vars['view_mode'] == 'search_result') {
    $vars['theme_hook_suggestions'][] = 'node__article__search_result';
  }
}

清除缓存后,您应该可以使用 node--article--search-result.tpl.php 作为模板文件名。

希望对您有所帮助。编码愉快。