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

默认地,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

文章分类: