如何单独分出node-teaser的模板?

逆流の鱼, 2 七月, 2013
默认地,node--[type|nodeid].tpl.php对应每一种node type或某个node的模板,不区分teaser还是page,如何单独针对teaser模式定义一个模板呢? 方法也很简单,在主题的template.php里定义:
function MYTHEME_preprocess_node(&$vars) {
  if($vars['view_mode'] == 'teaser') {
    $vars['theme_hook_suggestions'][] = 'node__' . $vars['node']->type . '__teaser';   
    $vars['theme_hook_suggestions'][] = 'node__' . $vars['node']->nid . '__teaser';
  }
}
这样,当node在teaser模式显示时就会使用这个模板:node--[type|nodeid]--teaser.tpl.php

评论