You are here

如何实现node-nid.tpl.php模板建议

g089h515r806 的头像
Submitted by g089h515r806 on 星期三, 2008-11-19 14:33

我想对单个节点定制相应的外观,而不是对某一类节点定制外观.想实现node-nid.tpl.php形式的模板建议。怎么实现?和前面所讲的page-nodetype.tpl.php类似,需要向template.php中加一个函数,function garland_preprocess_node(&$vars) 。其代码如下:

if  ($node = $vars['node']) {

       $suggestions = array();

      

       $suggestions[] = 'node-'. $node->type;

       $suggestions[] = 'node-'. $node->nid;

              // Clean up name so there are no underscores.

  $vars['template_files']= $suggestions;

             

       }

 

注意模板建议是由优先顺序的,在上面的代码中node-nid.tpl.php的优先级强于node-nodetype.tpl.php。原先我放反了,测试了几下,就发现$suggestions[] = 'node-'. $node->nid;应该放到下面。不然的话,如果对应的node-nodetype.tpl.php存在的话,那么node-nid.tpl.php就不起作用了。由于nid更特别,更具体一点,所以将它的优先级设得高一点。

相关链接: http://zhupou.cn

论坛: